The content provides a listing of key habits and skills that can help developers improve their abilities and become better in their field.
Abstract
The article is a summary of habits and skills that are beneficial for developers to learn and adopt. It emphasizes that learning is a continuous process in the tech industry, and developers should always strive to learn new skills and stay up-to-date with the latest trends. The article provides a list of key habits and skills such as efficient use of search engines, using modern IDEs, learning Linux, Git, teaching yourself, following tech trends, and being proficient in at least one programming language. Additionally, it encourages developers to focus on simplicity, join communities/forums, create professional profiles, ask questions, solve problems on paper, follow style guides, write tests, solve puzzles/challenges, manage time efficiently, protect personal information, and follow influencers/companies that inspire them.
Opinions
Developers should always be learning new skills and staying up-to-date with the latest trends.
Efficient use of search engines is an essential skill for developers.
Using modern IDEs can increase productivity.
Learning Linux is a valuable skill.
Git is one of the most frequently used code versioning tools and should be used for projects/assignments.
Self-teaching and following tech trends is important.
Becoming proficient in at least one programming language is essential.
Simplicity in coding is valued and important.
Joining communities/forums, creating professional profiles, and networking are beneficial for career growth.
Developing good time management skills is important for productivity.
Protecting personal information and following influencers/companies that inspire you is recommended.
The article emphasizes the importance of continuous learning and adopting best practices for developers.
Key habits and things I wish I knew earlier as a developer
A listing of key habits and skills that could help you become a better developer
Here is a quick summary of habits and things that in my opinion would make a huge difference if known earlier as a developer. It is worth mentioning that, It is never too late
Efficient use of search engines
Use a modern IDE for increased productivity
Learn Linux
Learn Git
Teach yourself & Follow tech trends
Become proficient in at least one programming language
Focus on Simplicity
Join communities/forums
Create professional profiles
Ask, Ask, Ask
Solve it in paper first then convert into code
Follow style guides, document and write tests from start
Solve puzzles/challenges on a regular basis
Start whiteboarding early on
Manage your time efficiently
Protect your personal information
Follow influencers & companies that inspire you
Attend tech events, workshops, talks, and hackathons
Embrace error messages ❤
Choose the right type of company for internship/career
First, develop a working solution then perfect it iteratively
SEO yourself
Contribute to open source
As usual watch out for the following habits/patterns
Do not give up so easily! ❤
Do not copy assignments/projects
Do not procrastinate — if not now, when?
Do not ignore other subjects
Do not get addicted to social networks
Do not lose hope
Keep reading for more details on how they can help you become a better dev.
Learning
Learning is a prerequisite to thriving in tech due to the speed at which the industry is evolving. There is always something new to learn.
Once you stop learning, you start dying — Albert Einstein
Search efficiently
As a developer, you will use search engines very often, and a majority of search engines offer advanced features. See tips and infographics
It is important to be able to search and find what you are looking for with the least amount of effort.
Development IDEs
Research existing IDEs that suits your requirements best. The IDEs come with shortcuts, plugins, and features aimed to increase your productivity. Be open-minded and try new tools and frameworks.
Git is one of the most frequently used code versioning tool.
I would definitely recommend using Git with your projectsand assignments. There many hosting services such as Github, Bitbucket, and more.
There are other code versioning systems such as Mercurial, SVN, CSV, and so on that, you don’t have to learn.
I wrote an article listing 20 most commonly used git commands that I have been using on a daily basis for a good while and it addresses a huge majority of my Git needs.
Fact, your program of study does not prepare you for the real world regardless of the university’s ranking, depth of the curriculum, or caliber of the professors. Nowadays there is no shortage of learning materials both offline and online.
At university, I studied C Programming for 2 years from Basics to Advanced Data Structure. It helped build a strong programming foundation and every other language become a mere change of syntax, terminology, and structure.
Focus on Simplicity
You will be surprised how in-demand simplicity is when it comes to coding and no one admires code that is complex, hard to understand and maintain.
Simplicity is a prerequisite for reliability. — Edsger W. Dijkstra
Communities are where you network with like-minded professionals, learn and give back.
Github
Creating a profile allows you to set up your own repository, follow inspiring contributors, appreciate others’ work by staring their repository, and most importantly contribute back to the open-source projects.
Developing a few habits early on would greatly help you down the road. I highly recommend reading The Power of Habit by Charles Duhigg.
Source: The Power of Habit by Charles Duhigg
Tech is a fast-paced industry. Stay up to date with social networks & sites such as slashdot & techcrunch
Don’t be shy! Ask for advice from those with expertise
Always plan and solve the problem in paper and then write the code. This is very powerful.
Write code that aligns with industry adopted coding standards. Start writing tests early for assignments, projects.
Develop a habit of solving puzzles/challenges on a regular basis. This will serve you dearly whether it’s an interview, your job, side project, etc.
Whiteboarding skills never let you down whether it is an interview, on the job. Probably one of the most overlooked skills.
Understand how much time you have in your hand and use it wisely. Do the math, calendar block tomorrow,and use RescueTime if you are comfortable with their Privacy Policy.
Protect your identity by reading privacy policies, terms of services, using VPN & Encryption, password manager, enabling 2FA, and so on.
Socializing & Networking
There are many benefits to networking and socializing such as
Learn about the dev communities, jobs, mentoring, volunteering, etc
Find your co-founders and project partners
Improve your soft skills i.e. speaking, active listening, and so on.
We are well past the era of the one-man army, it is all about teamwork now. Get to know people of all expertise i.e. legal, finance, sales, marketing, and so on. It will come handy in the future be it side projects, change industry, etc.
Act on your ideas. The chances that someone else is thinking about it is very high.
Pick that great idea and do a feasibility and market research
Connect with your professional network to find partners & co-founders
Work in your free time & don’t forget to see the idea through completion
So many ideas — pretty common among devs
Researching
As a Software Developer, you will be constantly learning and researching. Give yourself the habit of reading the documentation first and if that did not help then search for other learning materials such as examples, tutorials, etc.
Error Messages
Don’t be disappointed when you come across an error message. Learn What is it about?When does it happen? and How to handle it gracefully?
Choose the right Company
Recently, I came across this article by Brenn where he explains the benefits of working for a Product vs Consulting company — Might help decide your next career/internship option.
SEO Yourself
Have you ever googled yourself?Is your personal information safe? Is your public information easily accessible?
Use the magic of search engine to achieve your objectives whether it’s sharing wisdom, promoting your brand, attracting followers, or spreading awareness.
Things you should avoid
It takes time to build and remove habits.
Do not give up easily
There are different cues that lead to giving up. As a software developer, you will easily come across
Annoying issues
Poor legacy code
Learning other languages, tools, and domain knowledge
Working with people who have different coding habits, opinion, etc
It is generally a good habit not to give up and keep trying but, don’t be stubborn and understand when is the right time to let go and move on.
When it comes to coding, if you are on the verge of giving up, try following
Take a break and come back later or the next day
Try solving it on paper
Ask for help from those with expertise
Do not copy assignments
When I started my computer science degree, the first C programming assignment was “Write a program that computes x^n (x to the power of n) using + (plus) and — (minus) operators where x and n are integers provided by the user”.
It took me a long time with no access to the internet to find a solution on paper. I learned not to give up and keep trying and the following assignments become easier and easier.
Do not fall for social network addiction
Believe it or not, a majority of social networks are powered by algorithms that have one goal — Increase the ROI for the company using your time.
I recommend coming up with strategies on how to use social networks to get closer to your goals — think of your own ROI when you invest your time.
Do not lose hope, you are smarter than you think
Lastly, feeling hopeless and worried is going to be a frequent visitor and you will have to learn how to deal with it. Here are a few points in your defense
Don’t let knowledge gap make you worry or hopeless — see article below
Don’t be intimidated by those who are better — You will get there
Don’t lose hope for not knowing everything i.e. AI, Machine Learning, Blockchain, etc — you will learn them eventually
Dan Abramov, one of the developers I follow is the co-creator of the famous Redux framework wrote the following article that I consider a great read.
Here is an amazing documentary called Do You Trust This Computer? on AI and it’s future implications if you are interested.
Previous article
Thank you for reading. If this article was helpful, then please feel free to check out my other articles https://medium.com/@rhamedy and follow me for more relevant content. You can also connect with me on LinkedIn.
I reviewed the coding guidelines for companies like Google, Oracle, Twitter, and Spring and wrote a summary of it all in the following article. Please feel free to use the content to develop a coding standard for your company (if you don’t have one) or simply apply it to your own day to day development.
If you write any backend code, then you know that at times there is a need to check the performance of an API or piece of code under load. The following article focuses on how to use Apache JMeter and Taurus to perform to run a load test