The road to becoming a Software Developer is not fast or easy and you shouldn’t look for this!
I have been in software development since I understood what was computers and fell in love with them, and the reason for the title is because this is what I think that you should look for and I will explain!
I will try to change your concept of learning how to become a professional developer, one of the first things that you shouldn’t look for is easy steps, shortcuts, or anything that make you have the title “Software Engineering” fast.
This is why I started saying about I’m on “software development” since I was really young because now that I’m actually a software engineer I understood that every situation that I had contributed to my daily base work today, and I really appreciate not having been too fast, easy or anything like!
In this article, I will explain techniques that can help you learn better, improve your daily tasks, improve your productivity, and embrace the time that you need to achieve what you want as a developer.
Where and how to start?
Ok, you are reading this because you want to become a software engineer, and for you that want to start, first thing, forget about the shortcut, “learn in 24Hrs” and so on.
I’m not saying that you can’t do like this, after you have learned the basics at least, for sure some things you can learn like this.
But ok, let’s start about how you need to look into, first manage expectations about time, and understand how long this time can be for you.
At least when you are young, I would say this is the tough thing to understand, as usual, it’s about the experience, but let’s try a small exercise to start.
Measure yourself in 3 steps.
1 — Try to look back for anything that you have learned, really anything, and try to think how much effort was, doesn’t matter how much, and try to take a note and see how long you actually spent to learn that.
2 — Understand how was your environment, how you were at that time, you were happy? Sad? Pressure or no pressure? This is important, you need to discover and always measure these things as this changes how you learn.
3 — How long you can maintain your focus? How do you learn? Writing, reading, reproducing?
It’s a process, that will change from person to person, but these 3 rules are important, from this you would be able to adjust and find yourself what works and what didn’t.
Align expectations
Now that you understand yourself or how you can have a better understanding of yourself, align real expectations for yourself, you at the beginning will not manage that well, remember, it’s about the process, embrace, and will work.
The goal, it’s the most important step in order to make these steps work, our brain works with reward, it’s just how it works, highly motivated people embrace this so strongly that until they achieve their goals they never stop.
The biggest secret about your goal, split, you can’t measure all the challenges, then, just split your main goal with as much as you need, small goals will make you complete more tasks and get more rewards for your brain, and guess what, this will increase your motivation to do even more!
But here is the catch, don’t overpass your goals, don’t get saturated with too many tasks, or spend more time doing one of the tasks/goals that you want.
It’s all about your brain! Then, as any muscle as your brain is, he will get tired, if you push more than it’s supposed to, doesn’t matter how many rewards you get, you will lose the motivation, remember people with depression can have everything in their life, and still, they lost motivation!
As long as you continuously align and maintain control, you will see that the knowledge will grow up every day.
Some tips on how to organize yourself
1 — I see many people embracing the digital, and it’s awesome, I do this, I have some tools that I use to organize myself, but there is a catch here.
You are not just learning a new thing, learning how-to programming, you are perhaps “reprogramming” your brain to increase how much you achieve.
For this, you will need to use all the resources that your brain has now to achieve what you want right?! So spend your time looking for the perfect tool right now, it’s about the process.
Get a notebook and a pencil and it’s done, it’s more than enough, I still use it for some specific situations, if you try over complicate you will just lose motivation, again, it’s all about this, so, embrace your goal, not the secondary resources!
2 — Add a deadline, create in your calendar an end-time. Together with all the steps before this is one of the better things that I did for myself, this helped me continue and when I was on those “sad days” that you are not motivated to continue, as I basically had an “agreement” with myself, so I kept going.
Understand your environment.
All that I’m saying it’s connected, and for this part, it’s the same, I would say there are 2 types of “environment” that you will need to understand and organize your goals.
First, it’s about the stack of your choice, you want most probably make a choice regarding which technology you want to dedicate yourself, and for this usually, there are some roadmaps that people share on the internet.
For beginners the internet it’s full of courses that have a complete stack, that shows to you from the very beginning of a project, until the final, this is good as you will face difficulties and problems that will help you evolve the mindset to search for solutions to those problems.
Second, personal and professional stack, and sincerely I don’t hear people talking too much about it, but it’s sometimes even more important than the technical skills.
Use LinkedIn to look for what are people looking for or expecting from the stack that you are learning, of course, doesn’t matter if junior or senior, this will also give a good insight into what to learn, what to change perhaps regarding your choices.
But, it’s really important to align two things that always happen here, and can blur your idea of how you should prepare yourself and lost track.
1 — At least 99% of the time those requirements are filters, this means that they don’t expect you to know all of that, but, they want to attract people with the most skill available, so my tip here is, to get 10 positions, and see what all those have in common, so definitely that will be minimum requirements.
Don’t forget, not only technical skills are always important, I already had success in getting jobs, and after was hired the person that said “yes” told me that my soft-skills was crucial to accept me, even having other better technical skill candidates they accept me.
2 — If you feel that you have a good understanding already, even if basic, start applying to one or two positions, you need to understand the dynamics of the interview, this will help you improve even more those “soft skills”.
Open projects and a Github page.
This topic I hear a lot of people talking about, but it’s not equal to the number of people that I see doing this, and personally, this is my most important tip.
People really struggle with this, as they think that having a project on Github it’s about creating a “Twitter clone” or “Blog system” and this is not true, there’s nothing wrong with doing this.
But, if you really want to put yourself in a daily base explosion of creativity, here are some tips that you will for sure have a lot of ideas for projects.
1 — Expenses, everyone in the world need to handle his money, even if you don’t earn, but add the challenge of if you receive some money, and you want to buy something, how long and how much you should save in order to have that? This is easy, now if you are learning about the backend, create the API to add this data, save this data, if you are learning about front-end, create a nice interface, add some kind of login, and so on, you see, you can create this.
2 — Plans for your weekend, I don’t like to do anything if I don’t have a plan, ok, I will create a list that I can plan my weekend and share maybe only with a few people? Well from this I can evolve like where I will be at that time and for how long.
3 — Movies that I like and want to watch, there are many movies that I never watched and I want, I will create a system that handles this, and also will share automatically on twitter those that I really liked.
I think you got the idea, your daily base wishes are projects, that can lead to so many nice problems, and this is the idea.
If you put yourself only in those environments that are “ready” ideas you are losing what is most valuable from this, the problems! When you have problems, you search for the solution, and this creates very strong connections in your brain, that will strongly save in your brain.
Not only this, you know, you will forget most of the things and need to learn again, and so on and so on, and for this, I use another “solution”, those things that are not daily based used, but, I have spent a time to learn and I learned, I create a small snippet about that code and put on Github, so when I need it again I know were to look.
The advantage of this, is you are unique and learn in a unique way, if you translate your learn and write when you get back remember will be faster, as there's the exact format that is better for you!
Two types of interviews, algorithm and “real-life challenges”
Don’t take the name as offensive, the only reason why I named it like this is that indeed, in those interviews that ask for projects to be made usually we are looking more at the style that you code, how you organize your code structure, architectures and more, different from those that are only about algorithm and data structure.
None of them are less or more important, but there’s a clear difference in approach when making one kind of interview from each other.
I notice that North-America has a more algorithm mindset then South-America for example, and Europe stay in between.
These are just feelings from my experience and talking with friends, please don’t take it as rule!
This is such a complicated subject that deserves a unique post only about, the differences that you can achieve from this, but, for now, this part will focus only on those that are more “real-life challenges” as I call these interviews.
It’s about interviews that will require you to make a project yourself to demonstrate your skills, you will have time to make it, so here are some important tips to make this and go along.
1 — Clearly ask what they are looking for, I would say that this is the most complicated question because most of the time who is leading the interview is not clear enough.
Do they want to see a strong code, with well-defined architecture, using design patterns, unit testing, persistence, and so on, I guess you got it. Or they are just looking at your style, to see how you think, how to plan and add your ideas to your code.
I have found that this is the biggest problem in interviews, the interviewer doesn’t make this clear, give you the idea that you are “free” to do anyway, that should be easy and fast, and after you just make the easy and fast they *(some times) give you the feedback that was too simple and lacking implementations.
2 — Simple it’s better than over-complicated, you know, even for those very complicated tests this is the most important tip that I could give you, make it simple but very good, the person that will evaluate will easily identify when you don’t know about it, or copied from a tutorial because “it’s cool on the internet now”.
Don’t do this, you will need most of the time need to talk about that, explain why you used that way, it’s better you show you fully understand why you did it than try to explain something that you don’t know much about it.
3 — Learn to say “I don’t know”, it’s so important to say this, at least the good jobs they are looking for a professional, and for this, you need to know how to say I don’t know, each subject it’s so vast and with so many subjects how do you expect you know everything. Even if you are just starting, why be afraid of saying “I don’t know”, it’s important even to show how you will handle your problems on a daily base.
When you try to hide that you don’t know, when we are making the interview I will suppose that you handle that subject and perhaps will try to go more in deep, if you really don’t know most probably I will catch that you don’t have full control.
4 — Balance between what you don’t know and what you really know. Doesn’t matter if you are just starting, but on the professional side it’s important like I mentioned before, so, don’t try or show too much or make you “weak”.
You need at the same time show what are your real technical skills show if you still don’t know that you are prepared and motivated enough to learn that.
Show that you will ask any other teammate for help, that you are not afraid of asking, that you will search for an answer, but if you don't find or too complicated you will let your team know about it.
All these, again and again, will lead you to perfection.
This is the circle, I strongly believe that these rules and tips will make you a developer, that it’s always about practice and practice, but, even more, that you need to take the time to achieve this, but if you have this in mind you will achieve.
The road to becoming a professional developer it’s a road and not an achievement only, you will need to grow up many different skills to become a professional, so take this in mind.
You are not trying to achieve just one challenge or fix a problem, you are trying to become a developer, so don’t take the idea of shortcuts, there’s no reason for this.
I would say, if you still don’t, learn to love the challenges, will be on a daily basis, love this, it’s good, learn how to enjoy each achievement, you will never stop learning, you have to learn forever basically.
Conclusion
I hope you enjoyed reading this. If you’d like to support me as a writer, consider signing up for my newsletter.
Linkedin: https://www.linkedin.com/in/felipeflorenciodev/?locale=en_US