Transforming yourself from just a developer to a good developer is advantageous to you and your Company both! To be a "good" software developer you need to acquire the skills described in this presentation. The skills and techniques from this presentation are helpful to develop an edge and stay ahead of many experienced developers.
Apidays New York 2024 - The value of a flexible API Management solution for O...
What it takes to be a "Good" Developer?
1. What it takes to be a “GOOD”
Developer?
Harshul Shah
CrossShore Solutions, India
www.CrossShoreSolutions.com
2. Harshul Shah
Tech Geek and Founder of Technical Venture – CrossShore Solutions
o Possess 15+ years of IT experience
o Worked from Jr. Developer to Architecture level positions
o Ex. Microsoft – Assistant Sr. Architect
o Owing an award winning software development company
o Working with well known brands viz Samsung, Audi, KFC, MTN
Telecom, Gujarat Samachar
12. 2. Team Skill
What type of team player are you?
o Unhelpful or Cooperative
o Toxic or Encouraging
o Always Proving or Silent Doer
o Just finish it or Willing to help
o In the Igloo or In the forest.
14. 3. Client / User Skill
o Can you talk with a client?
o Are you a good listener when your client is expressing
his problem?
o Do you understand what problems they are facing?
o Can you explain complex programming problems to
non-techie person?.
15. How to develop a client skill?
o Go out to meetups
o Present Things in your college & company
o Make a 1 hour conversation with your PM once in a
month about what's new in tech world
o Listen to great instructors / videos
o Do regular presentations outside of your company.
16. 4. Growth Skill
Do you have a growth mindset?
o Learning something every day
o Speak to other developers
o Explore new topics.
17. 5. Sells Skill
o Offering your opinion to your project manager for
better decisions
o Offering your ideas to the company to offer more
value
o Selling your confidence to others
o Being contagious of growth mindset.
18. 6. Community Skills
o Contribute to community
o Speaking at meetups
o Write articles
o Get off from closed box.
20. 7. Troubleshooting
o Software development = Troubleshooting
o Troubleshooting = Analytical + Logical
o Mastering Google
o Reading Books and Bookmarking important
techniques.
22. 7 Skills to be a GOOD developer!
1) Tech Skill
2) Team Skill
3) Client / User Skill
4) Growth Skill
5) Sales Skill
6) Community Skill
7) Troubleshooting
29. Things you must refer
o Mind Mapping for a Web Developer -
https://www.youtube.com/watch?v=sBzRwzY7G-k&t=1s
o Computer Science Course from Havard -
https://www.youtube.com/watch?v=y62zj9ozPOM&list=PLhQjrBD2T3828
ZVcVzEIhsHVgjANGZveu
o Data-structures, Algorithms Book
https://bigmachine.io/products/the-imposters-handbook/
o Software Engineering Daily Podcast -
https://softwareengineeringdaily.com/category/podcast/
The agenda of this talk is Developer’s Evolution which is something like this,
When we come out of the college or when we complete our last semester project then we are like a candle. Glowing slowly by burring wax.
Gradually after a year or something we become like filament – Bright lite but consumes high power
Than we become better by using less electricity and still producing the same amount of lite and becomes like a CFL bulb
Gradually with more experience we become a top professional like LED bulb. Same or more lite with lesser electricity!
Ultimately when we came out of the college we dream to become a self-illuminating solar bulb.
CL – Continuous Learning
CF – Continuous Failures
--
How many of you have attended any in-person training program in the last 1 year of time?How many of you have taken online training in the last 1 year of time?
How many logical / algorithamic games you know like Mekorama?How many of you have taken a CS course?
In the field of programming, the world is changing very fast and the information available with us is overwhelming.
Its difficult to stay smart and efficient in your daily working along with new learning!
You may be knowing the best of technology in your domain and are keep upgrading on regular basis but that’s not enough. You may be knowing all cool techniques.BUT If you are not able to communicate with the team properly or you are not delivering the actual value to the customer then you are not a good developer.
What value do you bring to your company? If you are bringing the order of magnitude – The 10x value to your company then you are a good developer
So, how do I become a good developer?
And I call this as Developer’s Edge
There will people with more experience than you but you can outsmart them with the use of combination of skills and that sets you apart from others!
Take an example, 20 years back, who was knowing that machine learning will take the jobs?
Everyone knows about “Amazon Go” – The real combination of Machine learning, Computer Vision and AI
No Lines, No Checkouts
Reference: https://www.youtube.com/watch?v=NrmMk1Myrxc
Let me take a better nearer example – How many of you are a mobile app developers? Native iOS and Android?
Superb…. So, do you know that both the technologies are falling down from last 2 years at a consistent rate?
Do you know which new technologies in mobile space are taking over?
Flutter
React Native
Ionic
VueJS
Indexed DB
Docker
Webpack
Babel
ES6
So, what I call as Developer’s Edge is that you need to have diverse set of transferable skills that will translate you to being adaptable!
There are 7 skills that will make you a Good Developer
What are you doing? Everyone knows that.
But when you start thinking and understanding Why and How of technology then you become a Good Developer.
The Good developer will try to understand WHY this framework exists?
Example: Laravel – Now a days its really hot!
As a developer you should have good sense of all tools and ideas present in your forte!
And when you know Why is this exists then you will automatically start thinking how can we improve our development environment!
How – So, a good developer also learns and understand how things are connected.
Say for example, If you are on PHP then you should know how nginx, caching, memcach, cloud setup, babel are connected. You must know what is the best editor you should use in order to learn How you can improve your productivity!
Its not about you know the latest release of PHP and whats new in it so you are a good developer!
What is it?
Its all about emotional intelligence while working in a team.
If you are a team of 5 people and doing just the tasks then you are producing the result of only 5 people.
But if you are a good team player, you will help others in your team to be a better version of themselves and that brings the result of greater than 5
If you are a type of person that you can put on any project and make others to work well, you are miles ahead of most people.
Those are the people that get promoted and those are the people that offers the most value to the company!
Cryptography video
Learning everything is impossible so the good developer spends time with the right set of people where they can learn rather than spending time on all non-sense things of the world!
Having focus on growth keeps you pushing on the new learning automatically and that’s what all about growth mindset!
If you are learning, you are growing!
If you are only getting increments based on your experience then you are not growing!
Its just a need of the company and hence you are paid! Its not because you are extremely valuable and hence you are paid!
Learning everything is impossible so the good developer spends time with the right set of people where they can learn rather than spending time on all non-sense things of the world!
Having focus on growth keeps you pushing on the new learning automatically and that’s what all about growth mindset!
If you are learning, you are growing!If you are only getting increments based on your experience then you are not growing!
Its just a need of the company and hence you are paid! Its not because you are extremely valuable and hence you are paid!
What is selling?
Selling something to a customer?
What is selling?
Selling something to a customer?
What is selling?
Selling something to a customer?
What is selling?
Selling something to a customer?
So, how do I become a good developer?
And I call this as Developer’s Edge
There will people with more experience than you but you can outsmart them with the use of combination of skills and that sets you apart from others!
Take an example, 20 years back, who was knowing that machine learning will take the jobs?
Everyone knows about “Amazon Go” – The real combination of Machine learning, Computer Vision and AI
No Lines, No Checkouts
Reference: https://www.youtube.com/watch?v=NrmMk1Myrxc
Let me take a better nearer example – How many of you are a mobile app developers? Native iOS and Android?Superb…. So, do you know that both the technologies are falling down from last 2 years at a consistent rate?Do you know which new technologies in mobile space are taking over?
Flutter
React Native
Ionic
VueJS
Indexed DB
Docker
Webpack
Babel
ES6
So, what I call as Developer’s Edge is that you need to have diverse set of transferable skills that will translate you to being adaptable!
What is selling?
Selling something to a customer?
Lack of Client Skill – Asking wrong question!
Comfort Zone – Lack of technical skills
You can’t be put on any new technology