10 Tips for New Programmers, Developers, and Engineers


Starting off in software development can be an intimidating thing. Much of what you were taught in school was not relevant to what you are doing. Frameworks and tools are always changing at a rapid pace. You find out that there are so many things that you don’t even know about.

 

 

I’ve been through this phase not too long ago. I’ve been developing software professionally for 3 years now. I started off as a solo developer at a small company doing prototyping and production software development in mobile, embedded systems, and virtual reality for over 2 years. Now, I am working in a small team at a big company developing mobile applications and applying AI (artificial intelligence). I owe much of my progress up to this point to the following tips I am sharing in this post.

 

So, instead of me going on about my story, let’s get right to the tips!


1. Pseudocode

 

Writing pseudocode before you code is really helpful and saves you a lot of time in the end especially when you work with other developers. Why is it so good? It helps you lay out the steps to tackle the problem you are trying to solve. You know what needs to be done in order to solve the problem. If there is a mistake, it is very simple and fast to fix since there is no code rework.

 

When you write pseudocode, it helps you and other developers you work with understand the high-level idea on what needs to be done. It can help spark important conversations before any code is written. Maybe someone more senior at the company knows that something can’t be done in a certain way because of some reason. Imagine how much time that saved you before you start coding away for a day to finally figure out the same thing. Most importantly, to create scalable and well thought out solutions you need to think before doing and pseudocode fulfills that requirement.

 

2. Break down Problems into Smaller Problems

 

 

Many of the problems you will face are going to be big. So big that if you look at it as a whole it is going to be scary because you just don’t know what to do. The first step to overcoming big problems is to break it down into smaller ones. And if they are still too big, break it down into smaller ones. When you are working with something that you find manageable, you will feel good and ready to tackle the problem.

 

Breaking down problems into smaller ones also have other benefits such as helping to see the progress of a project easier. Imagine a big feature that would take at least a month to complete. If it was worked on as a whole, it won’t be until maybe the third week before you can see that the progress is on time or not. Now, if that big feature was broken down into 10 parts and by the third week 8 of the parts are finished it gives a much clearer indication of how progress is. This is beneficial for yourself, your team, and your organization.

 

3. Embrace the Learning Process

 

 

You’re not going to understand everything on your first try — at least most of us won’t. You will have to put in some work to learn something new. Maybe, you’re a fast learner and you pick up things faster, but you’ll still encounter failures along the way. Understand that the path to learning something is going to be full of ups and downs and you won’t become discouraged.

 

To get a better idea of how the learning process of developers normally goes, you can check out my post about the topic.

 

4. Tailor Your Learning for Your Learning Styles

 

 

If you want to learn fast, you need to figure out your learning styles. Once you know your learning styles, you can customize how you’re learning to fit those styles. When you are learning based on your learning styles you will notice that you are picking up information much faster.

 

To learn about learning styles and figuring out your learning style(s), check out my post about learning efficiently.

 

5. Establish Good Habits Early

 

exercise jogging

 

It’s tough to break your habits even if you know it is bad. So, try to avoid bad habits and put in place good habits. Get good sleep and exercise regularly. Learn and enforce writing clean and readable code. Learn to consult others for help; it can be online or in person.

 

There are other habits that great software developers commonly exhibit. To find out what they are, check out my post about 10 habits of great software developers.

 

6. You Don’t Need to Know Everything

 

A big mistake that I made when I was starting out in software development was that I would try to learn everything about the technology before using it. As a result, I spent a lot of time learning about the technology and got nothing done. Worst of all, when I finally started working with the technology, I realized I was not using most of the information I learned. I would have saved so much time if I went over the stuff I would need and then start a project.

 

The point of the story is to let you know that you don’t need to know everything. You don’t need to read a book cover-to-cover before you start. In fact, I advise against doing that because you’ll end up spending a lot of your time and not use most of the information and eventually forget about it. This leads me to establish a rule that I follow now that is working well for me so far and that is the 80/20 rule. Basically, it is to focus on the 20% that you’ll use 80% of the time.

 

7. Focus on the Fundamentals

 

A strong foundation of the fundamentals of programming is important because it is transferable to anything you decide to program. Focus on understanding loops, conditionals, functions, data types, data structures, and object-oriented programming. Depending on what you’re doing, you’ll probably want to go over algorithms as well.

 

Once you get the fundamentals down, it is time to move on to the bunch of awesome libraries out there that exercises the fundamentals and more. So, if you’re going to be using a library to do something, why learn the fundamentals anyways? This is because by understanding the fundamentals, it helps you learn these libraries quickly since it provides you with an idea of what is happening behind the scene. In addition, the fundamentals will carry over from one language to another. So, if you have the fundamentals down, you just need to worry about the syntax to pick up a new language.

 

8. Get Good at Problem-Solving

 

Software development is about problem-solving. Coding just happens to be one way of solving problems. It is really about solving problems with software, so you can write your own code and or use existing code (legally). At the end of the day, it’s about solving the problem at hand.

 

Just to be clear, I am not advocating for you to copy and paste the code you find online. You need to understand the solution you are providing even if it is not your own code. So, it’s perfectly fine to reference code online, but make sure you understand it and write the code your way.

 

9. Tap into Different Resources

 

We have so much information accessible to us with a simple Google search. Take advantage of it. Give a problem your best effort and if you still can’t get it, go search online if there is a solution. When you do find a solution, understand it — research into it if you need to. Once you understand the solution compare it to what you did and take notes of where your mistakes are.

 

10. Give Yourself a Break

 

 

Learning how to program is hard in the beginning. It puts a huge cognitive load on your brain. After a work day, you might legitimately feel “brain dead”. You will fail at times despite putting in many hours of hard work. You find out just how much you don’t know and need to learn as you learn more.

 

It’s going to be a grind, but that doesn’t mean you can’t stop to take a break. Taking breaks actually will help you. So, go ahead and take short breaks in between working. Give yourself downtime. And most importantly, take care of your mental health.


 

I hope this post was helpful to you. If you found this post helpful, share it with others so they can benefit too.

 

How many of these tips have you found yourself doing already?

 

To get in touch, you can follow me on Twitter, leave a comment, or send me an email at steven@brightdevelopers.com.


About Steven To

Steven To is a software developer that specializes in mobile development with a background in computer engineering. Beyond his passion for software development, he also has an interest in Virtual Reality, Augmented Reality, Artificial Intelligence, Personal Development, and Personal Finance. If he is not writing software, then he is out learning something new.