6 Reasons why student developers don't grow
Tags: codenewbie, webdev, tutorial, programming
Published: 2022-10-10 12:27:57

Everyone has experienced failure at some point in their lives. But what happens when this is the first experience you’ve had as a developer? Situations like these can often cause people to become fearful of taking risks, and it could lead to feelings of self-doubt especially when you are a high school/college/school student. Developing software involves making countless decisions every day. It’s important that these decisions are made thoughtfully and with the best intentions possible. With numerous things happening in your student life and you juggling around with decisions to make it becomes increasingly difficult to sometimes focus on efficiency and upskilling. If you don’t take the time to understand why things happen, or how other developers have dealt with similar situations, then you run a high risk of failing when things go wrong again and again. In this blog post, we will address some common pitfalls that new developers face, and how to avoid them if possible.


## Bad habits
When you’re a beginner, you must be careful not to develop bad habits. Bad habits can be hard to spot when you’re just starting out, but they can cause a lot of problems later on as you progress. Here are some bad habits that new developers tend to fall into: 
- You don’t meet your deadlines - If you’ve never completed a project before, chances are you don’t know what it takes to finish a software project on time. This is especially true when you’re a beginner and you don’t have the experience or knowledge to help guide the way. When you don’t meet deadlines, it can cause unnecessary stress and anxiety. What usually happens with college projects is that the deadlines get extended and you work your a** off in the last couple of days to get it completed because you know it needs to be done, but, in the case of your side project, you don't have any kind of compulsion and your mind tends to leave it when you face some problem or you aren't able to meet a specific deadline. 
- You don’t collaborate - Do you know anything about this? Competition is bad; cooperation is better. This is definitely the case. Upskilling is a tremendously difficult task. Because it implies that you must upskill a skill after you learn or acquire it. You must improve it and use your talents to accomplish many more things much more effectively, but as a student, you frequently have a tendency to keep things to yourself and dislike disclosing or making public what you are learning. I get it. Don't, however, try to handle everything on your own. If your brilliant project concept incorporates elements of machine learning, the front-end, and other components, market your idea to invite like-minded people with similar types of zeal. Five people at a beginner level with their respective skills can do much better and benefit individually than you alone working on five different technologies which you don't have any idea about. Also, it saves you time.
- You don’t work with a mentor - There are a few benefits to working with a mentor, both in the short and long term. Working with a mentor can help you develop good habits, resolve issues with your project, and learn how to work with other people on a team effectively. Working with a mentor is also beneficial when you want to start your own business because you can learn from their mistakes and apply what you’ve learned to your own business. Working with a mentor can greatly increase your chances of success. As a student you have a great opportunity to interact with your seniors and you know they are in front of you and you can legitimately check whether what they have achieved is real or not! But definitely connecting with mentors all over the world is made possible by following the practice of **Learning In Public** and efficient use of social media.


## Lack of code review
Lack of code review is a common mistake that new developers make. It’s important to have a process for code review. **What does code review really mean?** Now, you learn from some blog posts or some video tutorials and then you write some code. But how do you know if what you have written is the best way to write it, until and unless you have exactly copy pasted from the video or blog post? For example, You write a program for fetching data from MongoDB and process that data to sort it in increasing order and send it to the front-end. Have you ever wondered how some other developer would have written that same program? or How can you optimise the code to send the data much more quickly or sort the data much more effectively?

That is a problem students often face and they don't even know that it is a problem. You keep writing code without knowing if it is the best way or not. It affects you in the long run when you have to work on bigger projects and you struggle with finding consistency in your codebase and optimising your program's performance.

It has a simple solution, explore the web to do things you already **did** in a different way. Definitely not the most basic things which are just easy or boilerplate but things which you actually think that you've done for the first time or have written completely by yourself. In your free time trying to explore articles and projects where you can find similar functionality so you can actually learn that "Oh! there's an even better way to fetch data from MongoDB!" or maybe your reaction can be like: "Damn! I didn't know Internationalization API functionality was built into JavaScript, I was wasting my time implementing it from scratch"
I have faced it a lot and trust me exploring what you did on the internet improves you more than practising your skill. And also an added advantage with this process is if you don't find something like what you did which means it may be a unique work you can market yourself with a good blog/article and tell the community and get suggestions!


## You think you know everything
New developers often assume they know everything once they complete a BootCamp or a video tutorial. This is especially true in the beginning when you don’t have a lot of experience under your belt. As you continue to work as a developer, you’ll encounter situations that you haven’t dealt with before. This can cause you to panic, which will make it much harder to solve the problem at hand. If you find yourself thinking you know everything, try to remember that you don’t. Try to be open-minded, and accept that you might not know everything. You can also try to identify what areas of expertise you do have, and use those skills to problem-solve.


## No reward system
Many companies use a reward system to motivate their employees. You must have heard about things like team lunches, free pizza Fridays, and other activities that provide a sense of community and reward. Similarly, as a student being rewarded for your efforts will help to keep you motivated, especially when things get hard. Working day and night is tough. You have to make notes in class, study for examinations, spend time chilling with your friends make memories and you have to code. You get yourself hassled to manage all these things and tend to leave one or two things completely, which is not good! You definitely need to spend time coding if you want to upskill but the human mind works effectively only when you reward yourself for your hard work. Sometimes for a completed project or a problem, you were stuck for some time, or maybe a break or a refreshment when you are stuck on a project and not able to find the solution. 


## Unrealistic deadlines
As a student, you often sometimes assume that, hey before the end of this semester I will learn these 4 different technologies and create a humongous life-changing product in the holidays! RELAX! You'll only end up learning 4 new technologies in a way that you can only write "Hello World" in them. Seriously, I've seen my friends setting completely unrealistic deadlines, completing or practising 3 different Udemy Courses at the same time aiming to achieve mastery in three different languages at the same time that too in one month. That is not how things work. If you want to really grasp something, really understand it and create something with it, **you need to give it time!**

You need to get stuck in it, spend time solving a problem, spend time thinking about why it is happening like this, explore various solutions etc. Until and unless you don't do this, you won't excel at your preferred skillset. Once you start putting time into one specific thing, you'll automatically learn next time how to optimise your time and how to divide your time into learning different things and you'll learn more efficiently at a much fast pace. So, take a chill pill! Be relaxed, set a realistic deadline, achieve it and get comfortable. Then **gradually** keep on increasing your deadline difficulties!


## Not asking for help or taking advantage of opportunities
As you continue to work as a developer, you’ll encounter situations that you haven’t dealt with before. This can cause you to panic, which will make it much harder to solve the problem at hand. If you find yourself needing help, or want to take advantage of an opportunity, try to remember that everyone has a learning curve. New developers often assume that other people are more experienced than them, or that they know everything. This is especially true in the beginning when you don’t have a lot of experience under your belt. 

There is no shame in asking for help, in admitting that you don't know it but still you wanna do it!

I will tell you an honest story when I grabbed the first internship I had no idea how to write a NodeJS Server Side application by myself. Every time I had to write a Server Side code I had to open some tutorial and start copying it. But still, I cracked the internship because things I didn't lack were:
- My confidence that I have done this thing and this is how it works!
- My habit of always keep searching and asking for help (in my developer journey) if I am not able to do it myself, like asking for help from Google/Senior Developers
- My zeal to take the opportunity at hand and learn something from it!

I cracked the internship and worked hard to learn things and followed all the steps I told you above, read, research, asked for help, asked for guidance and most importantly never gave up on the opportunity I have received! I would have been completely fine if I would have lost that opportunity by not working efficiently but I would've at least learnt so many things.

So, just don't panic if you aren't highly skilled. There are lots and lots of communities which are really welcoming where you can put up your queries and ask for guidance and there are a lot of opportunities on your way which may not seem achievable at first but once you determine that you have that zeal to accomplish them, you can do wonders!


## Conclusion
Developing software is challenging and difficult, but it can also be extremely rewarding. Becoming a developer requires a unique set of skills and knowledge that can take some time to develop. However, with the right mindset, initiative, and willingness to learn, anyone can become a successful developer. As you can see, there are many reasons why developers fail. The best way to prevent failure is to be prepared for failure. This means that you need to identify the areas where you need improvement and work towards improving them.

Be happy and be rewarding for yourself, that is the key :)

You can definitely connect with me over LinkedIn or Twitter for any queries or guidance or support you would want. I would definitely love to help you <3

**My gadgets**

Laptop (Macbook Air 2020 M1)

Keyboard and Mouse: https://amzn.to/3eTvFTP

External Display Monitor: https://amzn.to/3doZI5z

External SSD: https://amzn.to/3BrrSoD

USB Hub for Macbook Air: https://amzn.to/3ScC3E1

Headphones: https://amzn.to/3qR5yzP

Laptop Sleeve: https://amzn.to/3R7MkAz

(some of the above are affiliate links ie if you purchase any item using the links above I'll get a very small percentage of it and you'll get the product at the same price)