What I’ve learned after 1 year of becoming a Software Developer

Nelson Sandoval
8 min readMar 31, 2019

--

Hello, my name is Nelson Sandoval l I’m a self-taught full stack developer, last year, I wrote my first story “How I became a Web Developer, got a Google-udacity Scholarship & landed my first Software Developer Job in one year while working and taking care of my baby”. Where I described what I did in order to accomplished my goals besides obstacles like working and taking care of my family. Same obstacles that many people deal with everyday.

This time I’d like to tell you about my experiences and some advises specially if you are struggling to be hired, feeling you are not good enough, overwhelmed with so many technologies and what’s next if you are already working as a developer. So I hope I can help you a little if you are experiencing one of the issues I just mentioned.

1. I’ve been into Job interviews but nobody is hiring me!

During this year, I have met people willing to become software developers following a similar path, developing personal or third party projects from online platforms like freeCodeCamp, most of them in meetups, as I mentioned in my first story, the key steps to find job opportunities were going to Meetups and develop personal or third party projects, in my case I followed-up freeCodeCamp curriculum among other resources like Udacity and Udemy. Unfortunately while talking to them, I was told they were struggling to be hired, the main reason was the lack of enough experience.

After 1 year in the business and kept in touch with all kind of developers sharing many experiences, These are 3 things you could do in order to overcome this obstacle.

  • Contribute to open source projects

Contributing to open source is the best way to get real experience, when you contribute in open source you deal with what a software developer does every day, team work, branches, commits, push and pull requests. This is a perfect way to show companies or any possible employer(in case you are interested to get into freelancing) that you have real experience. In fact in many interviews they will be impressed if you have contributed to an open source project and you’re applying for an entry level position, since it’s not so common to find newbies involved into open source.

I know open source can look scary at first glance, however, you can start with simple projects, small libraries, even tools that you already know as user. For example, as a freeCodeCamp student and knowing how the platform works, it’s easier to read and fix bugs in the code base. So you can do it, just find a small library , and try to find a small bug to fix, in few weeks you will feel self confidence and next time you have an interview, you’ll have better chances. Firsttimeonly is a web site where you can get info on how to get involved in open source as also tutorial and links to projects for first time contributors.

Get involved into professional social networks

Beyond technical skills, we are humans, soft skills are more important than technical skills, people want to work with friendly people able to communicate effectively. As I mentioned in my first story and after being in the business for a year I could not be more agree that companies want and give preferences to work with people that has already connections inside their organisations. There are many reasons, interviews are not enough to get to know someone, a good referral from someone inside the company tells the company about how the possible candidate is. his/her capabilities. As a software developer you are part of a team so being able to communicate and help the team and the entire organisation is key. If there are two candidates with the same skills, this could make the difference.

  • Open a @LinkedIn account and be active posting, connecting with people in the field.
  • Go to Meetups and meet people, technologies, trends in your local market.

Focus on a specific niche and improve your skills on that niche

Focusing in a specific niche is key, many people try to learn a little of everything and jump from one tutorial to another, but never master anything and even worst, they never develop any kind of project.

Just choose a niche, web development, mobile development, machine learning, block chain, data science and work out that niche. This topic take us to the next issue…

2. There are so many technologies out there , which library or framework I should choose!

Another concern of a software developer apprentice is to choose a programming language, library, framework or even niche.

The best advise I’ve got from experienced developers and that I had seen myself is this:

Look at what’s going on your local market

Depending on your city or country, the demand for a specific programming language, library or framework could be lower or higher. So look into your region, what are they asking for.

There are other factors to take into account when choosing to learn and master a technology over other, like the size of the company. One of the things I’ve noticed is that medium and large size companies are tight coupled with older technologies and the main reason is they have invest a lot of money in those technologies that is not feasible to replace an application just because something new was released. This explains why Java and C# are the kings of enterprise software and php is still widely used regarding the back-end technologies. As far as the front-end, depending the back-end used by a company could determine the framework or library to use in the front end in many cases, Most of the companies in my region that work with Java and c# choose Angular, probably due to the Object Oriented paradigm while companies working with node or python work with react.

The message here is that if you are overwhelmed with the number of technologies and do not know which technology to choose, just look at your local market and what they asking for. In case you do not like what your local market is asking for, you still have the possibility to go to live to another city and if you live in Europe you could even go to another country inside the European union as a European citizen or even work remotely from home as a freelancer or for a company, something that is becoming more and more usual among developers.

3. I’m not good enough (The impostor syndrome)

Even as a full time software developer and working daily with software development and bug fixing, I sometimes still feel not good enough, specially when I face a new challenge. Something I was told I will still feel even after working for years. As a software developer, technologies change often so new things and challenges will always exist, so even if you are preparing to become a software developer or you are just starting into software development just embrace the changes and try not be be afraid, it’s impossible to know it everything. Even experienced developers do not know everything. They just are backed up on their experience and mastery of the basics to overcome a new challenge.

These are some key facts to beat Impostor Syndrome published by Stefhan Mischook. A software developer with a youtube channel who shares his experiences along 20 years as a software developer. I’m subscribed to his channel because I really like his videos and how He focuses on guiding you in your path to become or improve yourself as a software developer in stead of teaching you just the technical part. I feel identify in many of his videos, and you will probably feel the same if you look at some of his videos.

Some key facts to beat Impostor Syndrome:

- No unicorn Developer (There is not a developer that knows everything)

- Learn on a need to learn basis. (Learn just what you need to avoid being overwhelmed).

Lost of resources (Google, Stack Overflow, a good IDE)

Dive into projects, start with simple projects.

Specialise in a niche(machine learning, e-commerce, enterprise software, block-chain, etc)

I encourage you to see the whole video Beat your developer Impostor Syndrome it’s less than 5 minutes.

4. I have finally become a software developer so what’s next?

Once you start working as a software developer you realise that there are many things to learn and that the goal you had before getting the job is just the start of a new career. However, do not get scared. One important and final advise.

Master the basics and you will be fine

As an entry level developer the next step is to become a Mid-level and later a Senior-level Software Developer.

Of course these steps take time, however, as you will realise soon or you have already realised if you’ve being a while learning or working as a developer, is that technologies change all the time and the main reason is because new technologies try to satisfy the gap of needs that older technologies have not overcome yet. So this why if you master the basics you will be fine and with this I mean that if you master the core technologies would be easy for you to migrate from one language to another, from one library or framework to another. Under the hood they work with the same principles. Talking about web development , if you master the core technologies HTML, CSS and JavaScript. It will not be difficult to work with CSS libraries like bootstrap, semantic, etc or js libraries or frameworks like Angular, React or Vue regarding the front-end, as far the back-end, even knowing how javascript works, if you had worked with Object Oriented paradigm and ES6 class syntax, you could understand in no time how Java, C# or PHP work. Under the hood the principles are the same, so master the basics and you will be able to adapt to changes easily across time.

As Charles Darwin said:

It is not the strongest of the species that survives,
not the most intelligent that survives.
It is the one that is the most adaptable to change.

Conclusion

I hope this story help you and give the courage to keep on your journey on becoming a software developer, no matter the possible obstacles you find in your way and if you are already a software developer, remember that even if technologies change all the time, the fundamentals stay, so knowing for example what Object oriented and functional programming paradigms are, as also their key concepts and differences, you will be able to adapt easily.

Thank you for reading!

--

--