SlideShare ist ein Scribd-Unternehmen logo
1 von 9
Downloaden Sie, um offline zu lesen
M a r c h 1 4 t h , 2 0 1 8
G R A D U AT E S G O N E M A D : I N N O VAT I O N S I N S O F T WA R E
A l p e r K a n a t , S o l u t i o n A r c h i t e c t
a l p e r . k a n a t @ c o m m e n c i s . c o m
© Commencis 2018. All Rights Reserved.
Language
• Which one should I learn first?
• Which one should I learn to do X?
• Can I work with this language in my city? How many
companies/opportunities do I have?
• Is this language still relevant?
• Company X uses this language, so why shouldn’t I?
BASIC LISP LUA PASCAL PERL PYTHON JAVA ADA C PHP D
JAVASCRIPT RUBY ERLANG C# C++ F# HASKELL COBOL E
FORTRAN SWIFT OBJ-C VB SMALLTALK SCALA GO KOTLIN
• 100’s of languages if not 1000’s!
• Pick one even if you make the worst decision!
• Develop your own web site, your own game, your own library!
• Listen to podcasts, read articles, blog posts!
• Make the most out of your internship even if you’re not obliged to!
• Übung macht den meister! J
© Commencis 2018. All Rights Reserved.
Language > Framework
• A new framework is created almost every day!
• Framework X may not exist next year! L
• Don’t let populism overrule your decisions!
• Pick wisely or you’ll suffer. (probably not just you)
• Be part of the community and always seek for opportunities to
contribute!
DJANGO SPRING RUBY ON RAILS EXPRESSJS GWT PLAY
ZEND FLASK ANGULARJS REACTJS BOOTSTRAP AKKA
SYMFONY LARAVEL CODEIGNITER XAMARIN IONIC JSF
© Commencis 2018. All Rights Reserved.
Language > Framework > Libraries
Most of our code bases are now a mash up of 3• rd party libraries
Is library X acDvely developed or abandoned?•
Most libraries are hard to configure and usually don’t have a•
proper documentaDon
Who reads the Release Notes anyway?•
Enter circular dependencies!•
JDBC HttpClient Swagger Jackson JWT OkHttp pillow
ObjectMapper KingFisher requests BeautifulSoup
SASS Nokogiri Capistrano VueJS CardJS KeyStone LESS
© Commencis 2018. All Rights Reserved.
Language > Framework > Libraries > Tools
• Tools constantly evolve and it’s hard to keep up.
• There are different tools for the same task but each has its own
pros & cons
• New tools may seem to improve your abilities but this
eventually takes a lot of time to adapt & adjust.
maven gradle webpack npm yarn bundler brew apt
github jira eclipse gulp IntelliJ IDEA vim pip emacs
vagrant virtualbox grunt ant jq nodenv pyenv tmux
• Sooner or later you’ll discover things like oh-my-zsh and have
your own ”dotfiles”. J
• Look for open source standards such as editorconfig
• Avoid installing tools directly on your OS. Use tools like
Virtualbox, Docker and vagrant instead.
© Commencis 2018. All Rights Reserved.
Language > Framework > Libraries > Tools > Services
Each new service means more configura>on, more deployment•
considera>ons, more restric>ons.
You need to know everything about your selec>on of services and•
read through their documenta>on.
Environmental restric>ons greatly impact your service selec>ons.•
Licensing/pricing condi>ons may hurt.•
hazelcast elasticsearch couchbase cassandra hadoop
hdfs spark docker logstash mysql kibana rabbitmq SNS
lambda dynamodb zookeeper memcache redis firebase
• There is no silver bullet!
• Look for community support (forums, blogs, events) and help
others!
• Participate in hackathons and contribute to the upstream if
possible.
© Commencis 2018. All Rights Reserved.
Language > Framework > Libraries > Tools > Services > DevOps
• Not all companies have separate DevOps teams, you may find
yourself in this situation where you have to manage everything
yourself
• Choosing your tools & services is cool. But what about its
configuration, deployment and scalability?
linux http bash nginx apache varnish haproxy GCP
bind dnsmasq AWS zsh Azure docker CloudWatch SSH
nagios systemd ECS SQL LDAP Kubernetes firewall
• Every cloud comes with its own unique solution to a certain
problem.
• Cloud is relatively easy. How do you manage these on-prem?
© Commencis 2018. All Rights Reserved.
Language > Framework > Libraries > Tools > Services > DevOps > Processes
• Thankfully, most companies have onboarding sessions planned
upfront.
• Every company has its own unique way of managing processes.
Some do pair programming while others prefer regular code
reviews.
• Code Review is useful for understanding a company’s code
styling and daily practices.
code review CI deployment kanban sandbox jenkins QA
semver gerrit documentation wiki Postman swagger
scalability scrum code style pair programming licences
• The flow your work goes through from a single line of code to a
released package is often called “the pipeline”. Together with
the QA processes, it defines a developers requirements and
guidelines.
THANK YOU!
Q u e s t i o n s ?

Weitere ähnliche Inhalte

Ähnlich wie Graduates Gone Mad: Innovations in Software

Tech Thursdays: Building Products
Tech Thursdays: Building ProductsTech Thursdays: Building Products
Tech Thursdays: Building ProductsHayden Bleasel
 
Let’s learn how to use JavaScript responsibly and stay up-to-date.
Let’s learn how to use JavaScript responsibly and stay up-to-date. Let’s learn how to use JavaScript responsibly and stay up-to-date.
Let’s learn how to use JavaScript responsibly and stay up-to-date. Christian Heilmann
 
Programming Languages #devcon2013
Programming Languages #devcon2013Programming Languages #devcon2013
Programming Languages #devcon2013Iván Montes
 
Prototyping Accessibility - WordCamp Europe 2018
Prototyping Accessibility - WordCamp Europe 2018Prototyping Accessibility - WordCamp Europe 2018
Prototyping Accessibility - WordCamp Europe 2018Adrian Roselli
 
Quo vadis, JavaScript? Devday.pl keynote
Quo vadis, JavaScript? Devday.pl keynoteQuo vadis, JavaScript? Devday.pl keynote
Quo vadis, JavaScript? Devday.pl keynoteChristian Heilmann
 
How to create/improve OSS product and its community (revised)
How to create/improve OSS product and its community (revised)How to create/improve OSS product and its community (revised)
How to create/improve OSS product and its community (revised)SATOSHI TAGOMORI
 
The State of Frontend
The State of FrontendThe State of Frontend
The State of FrontendJimit Shah
 
Native vs HTML
Native vs HTMLNative vs HTML
Native vs HTMLludlola
 
The Times They Are a-Changin’: Domino Applications in the New World of HCL No...
The Times They Are a-Changin’: Domino Applications in the New World of HCL No...The Times They Are a-Changin’: Domino Applications in the New World of HCL No...
The Times They Are a-Changin’: Domino Applications in the New World of HCL No...panagenda
 
Scaling with Symfony - PHP UK
Scaling with Symfony - PHP UKScaling with Symfony - PHP UK
Scaling with Symfony - PHP UKRicard Clau
 
Seven ways to be a happier JavaScript developer - NDC Oslo
Seven ways to be a happier JavaScript developer - NDC OsloSeven ways to be a happier JavaScript developer - NDC Oslo
Seven ways to be a happier JavaScript developer - NDC OsloChristian Heilmann
 
Talking to your organization about Elixir
Talking to your organization about ElixirTalking to your organization about Elixir
Talking to your organization about ElixirBrandon Richey
 
10 skills developers should invest in for 2014
10 skills developers should invest in for 201410 skills developers should invest in for 2014
10 skills developers should invest in for 2014Pakorn Weecharungsan
 
Cerebro general overiew eng
Cerebro general overiew engCerebro general overiew eng
Cerebro general overiew engCineSoft
 
Software Development Whats & Whys
Software Development Whats & Whys Software Development Whats & Whys
Software Development Whats & Whys Harun Yardımcı
 
Dominoapplikationen im Wandel der Zeit: Alles neu mit HCL Nomad Web
Dominoapplikationen im Wandel der Zeit: Alles neu mit HCL Nomad WebDominoapplikationen im Wandel der Zeit: Alles neu mit HCL Nomad Web
Dominoapplikationen im Wandel der Zeit: Alles neu mit HCL Nomad Webpanagenda
 
Systems Monitoring with Prometheus (Devops Ireland April 2015)
Systems Monitoring with Prometheus (Devops Ireland April 2015)Systems Monitoring with Prometheus (Devops Ireland April 2015)
Systems Monitoring with Prometheus (Devops Ireland April 2015)Brian Brazil
 
Christian Heilmann - Seven Things to Do to Make You a Happier JavaScript Deve...
Christian Heilmann - Seven Things to Do to Make You a Happier JavaScript Deve...Christian Heilmann - Seven Things to Do to Make You a Happier JavaScript Deve...
Christian Heilmann - Seven Things to Do to Make You a Happier JavaScript Deve...Codemotion
 
Java And Community Support
Java And Community SupportJava And Community Support
Java And Community SupportWilliam Grosso
 
Prototyping Accessibility: Booster 2019
Prototyping Accessibility: Booster 2019Prototyping Accessibility: Booster 2019
Prototyping Accessibility: Booster 2019Adrian Roselli
 

Ähnlich wie Graduates Gone Mad: Innovations in Software (20)

Tech Thursdays: Building Products
Tech Thursdays: Building ProductsTech Thursdays: Building Products
Tech Thursdays: Building Products
 
Let’s learn how to use JavaScript responsibly and stay up-to-date.
Let’s learn how to use JavaScript responsibly and stay up-to-date. Let’s learn how to use JavaScript responsibly and stay up-to-date.
Let’s learn how to use JavaScript responsibly and stay up-to-date.
 
Programming Languages #devcon2013
Programming Languages #devcon2013Programming Languages #devcon2013
Programming Languages #devcon2013
 
Prototyping Accessibility - WordCamp Europe 2018
Prototyping Accessibility - WordCamp Europe 2018Prototyping Accessibility - WordCamp Europe 2018
Prototyping Accessibility - WordCamp Europe 2018
 
Quo vadis, JavaScript? Devday.pl keynote
Quo vadis, JavaScript? Devday.pl keynoteQuo vadis, JavaScript? Devday.pl keynote
Quo vadis, JavaScript? Devday.pl keynote
 
How to create/improve OSS product and its community (revised)
How to create/improve OSS product and its community (revised)How to create/improve OSS product and its community (revised)
How to create/improve OSS product and its community (revised)
 
The State of Frontend
The State of FrontendThe State of Frontend
The State of Frontend
 
Native vs HTML
Native vs HTMLNative vs HTML
Native vs HTML
 
The Times They Are a-Changin’: Domino Applications in the New World of HCL No...
The Times They Are a-Changin’: Domino Applications in the New World of HCL No...The Times They Are a-Changin’: Domino Applications in the New World of HCL No...
The Times They Are a-Changin’: Domino Applications in the New World of HCL No...
 
Scaling with Symfony - PHP UK
Scaling with Symfony - PHP UKScaling with Symfony - PHP UK
Scaling with Symfony - PHP UK
 
Seven ways to be a happier JavaScript developer - NDC Oslo
Seven ways to be a happier JavaScript developer - NDC OsloSeven ways to be a happier JavaScript developer - NDC Oslo
Seven ways to be a happier JavaScript developer - NDC Oslo
 
Talking to your organization about Elixir
Talking to your organization about ElixirTalking to your organization about Elixir
Talking to your organization about Elixir
 
10 skills developers should invest in for 2014
10 skills developers should invest in for 201410 skills developers should invest in for 2014
10 skills developers should invest in for 2014
 
Cerebro general overiew eng
Cerebro general overiew engCerebro general overiew eng
Cerebro general overiew eng
 
Software Development Whats & Whys
Software Development Whats & Whys Software Development Whats & Whys
Software Development Whats & Whys
 
Dominoapplikationen im Wandel der Zeit: Alles neu mit HCL Nomad Web
Dominoapplikationen im Wandel der Zeit: Alles neu mit HCL Nomad WebDominoapplikationen im Wandel der Zeit: Alles neu mit HCL Nomad Web
Dominoapplikationen im Wandel der Zeit: Alles neu mit HCL Nomad Web
 
Systems Monitoring with Prometheus (Devops Ireland April 2015)
Systems Monitoring with Prometheus (Devops Ireland April 2015)Systems Monitoring with Prometheus (Devops Ireland April 2015)
Systems Monitoring with Prometheus (Devops Ireland April 2015)
 
Christian Heilmann - Seven Things to Do to Make You a Happier JavaScript Deve...
Christian Heilmann - Seven Things to Do to Make You a Happier JavaScript Deve...Christian Heilmann - Seven Things to Do to Make You a Happier JavaScript Deve...
Christian Heilmann - Seven Things to Do to Make You a Happier JavaScript Deve...
 
Java And Community Support
Java And Community SupportJava And Community Support
Java And Community Support
 
Prototyping Accessibility: Booster 2019
Prototyping Accessibility: Booster 2019Prototyping Accessibility: Booster 2019
Prototyping Accessibility: Booster 2019
 

Kürzlich hochgeladen

10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024Mind IT Systems
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...kalichargn70th171
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionOnePlan Solutions
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 

Kürzlich hochgeladen (20)

10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 

Graduates Gone Mad: Innovations in Software

  • 1. M a r c h 1 4 t h , 2 0 1 8 G R A D U AT E S G O N E M A D : I N N O VAT I O N S I N S O F T WA R E A l p e r K a n a t , S o l u t i o n A r c h i t e c t a l p e r . k a n a t @ c o m m e n c i s . c o m
  • 2. © Commencis 2018. All Rights Reserved. Language • Which one should I learn first? • Which one should I learn to do X? • Can I work with this language in my city? How many companies/opportunities do I have? • Is this language still relevant? • Company X uses this language, so why shouldn’t I? BASIC LISP LUA PASCAL PERL PYTHON JAVA ADA C PHP D JAVASCRIPT RUBY ERLANG C# C++ F# HASKELL COBOL E FORTRAN SWIFT OBJ-C VB SMALLTALK SCALA GO KOTLIN • 100’s of languages if not 1000’s! • Pick one even if you make the worst decision! • Develop your own web site, your own game, your own library! • Listen to podcasts, read articles, blog posts! • Make the most out of your internship even if you’re not obliged to! • Übung macht den meister! J
  • 3. © Commencis 2018. All Rights Reserved. Language > Framework • A new framework is created almost every day! • Framework X may not exist next year! L • Don’t let populism overrule your decisions! • Pick wisely or you’ll suffer. (probably not just you) • Be part of the community and always seek for opportunities to contribute! DJANGO SPRING RUBY ON RAILS EXPRESSJS GWT PLAY ZEND FLASK ANGULARJS REACTJS BOOTSTRAP AKKA SYMFONY LARAVEL CODEIGNITER XAMARIN IONIC JSF
  • 4. © Commencis 2018. All Rights Reserved. Language > Framework > Libraries Most of our code bases are now a mash up of 3• rd party libraries Is library X acDvely developed or abandoned?• Most libraries are hard to configure and usually don’t have a• proper documentaDon Who reads the Release Notes anyway?• Enter circular dependencies!• JDBC HttpClient Swagger Jackson JWT OkHttp pillow ObjectMapper KingFisher requests BeautifulSoup SASS Nokogiri Capistrano VueJS CardJS KeyStone LESS
  • 5. © Commencis 2018. All Rights Reserved. Language > Framework > Libraries > Tools • Tools constantly evolve and it’s hard to keep up. • There are different tools for the same task but each has its own pros & cons • New tools may seem to improve your abilities but this eventually takes a lot of time to adapt & adjust. maven gradle webpack npm yarn bundler brew apt github jira eclipse gulp IntelliJ IDEA vim pip emacs vagrant virtualbox grunt ant jq nodenv pyenv tmux • Sooner or later you’ll discover things like oh-my-zsh and have your own ”dotfiles”. J • Look for open source standards such as editorconfig • Avoid installing tools directly on your OS. Use tools like Virtualbox, Docker and vagrant instead.
  • 6. © Commencis 2018. All Rights Reserved. Language > Framework > Libraries > Tools > Services Each new service means more configura>on, more deployment• considera>ons, more restric>ons. You need to know everything about your selec>on of services and• read through their documenta>on. Environmental restric>ons greatly impact your service selec>ons.• Licensing/pricing condi>ons may hurt.• hazelcast elasticsearch couchbase cassandra hadoop hdfs spark docker logstash mysql kibana rabbitmq SNS lambda dynamodb zookeeper memcache redis firebase • There is no silver bullet! • Look for community support (forums, blogs, events) and help others! • Participate in hackathons and contribute to the upstream if possible.
  • 7. © Commencis 2018. All Rights Reserved. Language > Framework > Libraries > Tools > Services > DevOps • Not all companies have separate DevOps teams, you may find yourself in this situation where you have to manage everything yourself • Choosing your tools & services is cool. But what about its configuration, deployment and scalability? linux http bash nginx apache varnish haproxy GCP bind dnsmasq AWS zsh Azure docker CloudWatch SSH nagios systemd ECS SQL LDAP Kubernetes firewall • Every cloud comes with its own unique solution to a certain problem. • Cloud is relatively easy. How do you manage these on-prem?
  • 8. © Commencis 2018. All Rights Reserved. Language > Framework > Libraries > Tools > Services > DevOps > Processes • Thankfully, most companies have onboarding sessions planned upfront. • Every company has its own unique way of managing processes. Some do pair programming while others prefer regular code reviews. • Code Review is useful for understanding a company’s code styling and daily practices. code review CI deployment kanban sandbox jenkins QA semver gerrit documentation wiki Postman swagger scalability scrum code style pair programming licences • The flow your work goes through from a single line of code to a released package is often called “the pipeline”. Together with the QA processes, it defines a developers requirements and guidelines.
  • 9. THANK YOU! Q u e s t i o n s ?