What should I know as a new Software Developer?
NUGGETS FOR A NEWBIE
As someone new to software development, there are definitely a lot of gray areas you would like cleared up. There are so many things to say about this field because it is a very broad one. However, I would just mention a few things I wish I knew at the earlier parts of my career in the hopes that they will help someone out there.
Firstly, like I said earlier, software development is a very broad field so it is very easy to get swamped and the possibility of drowning is quite high. So, to avoid this, choose a path and tow it.
Software development is often divided into UI/UX, frontend development and backend development. UI/UX means user interface/user experience and just as the name implies, it has to do with the graphic design of the application, the UI/UX designer determines the look and feel of the application, the experience that users should have on the app. The frontend developer gives life to the designs produced by the UI/UX designer, they convert it from designs to actual applications. Backend developers are responsible for the working mechanism of the application. Breaking it down, suppose we want to create a simple website that allows users place orders for goods displayed. The application is designed by the UI/UX developer, they choose the colour, font, shapes and everything that has to do with the appearance of the website. Then these design screens are passed to the frontend developer who now creates the actual website as seen in the designs received. The items on the website, the colours, arrangement, buttons and other components on the website should mirror what was designed. Now, users can browse to the website, view some dummy items however, when the payment button is clicked, the payment cannot be processed. To complete the cycle, when the user is done shopping and chooses to checkout, the details of the users cart is passed is used to generate an invoice and process payment. The backend developer performs the “magic” of generating the invoice and processing the payment.
Every player in the development process is a key player and not one role is more important than the other. Therefore, whatever path you choose will be great, your guiding compass being your interest — choose the path that interests you the most.
Then the next thing to know is, you do not need to be a Jack of all trade as he is usually the master of none. In the field of software development, competence and expertise is priority. As a new software developer, it is important that you keep this in focus, it will help you in decision making. Choosing to be a Jack in one trade makes you a master of that trade. Bottom line, you need to choose what language or tool (as the case may be) and stick with it at least until you have gained confidence in it.
Like I said in my previous write up, no language is more superior to the other. Therefore, the choice of what language to learn depends on the intended area of application. You can read it here. To build expertise, you need to get your hands dirty by trying out projects. You only become better by doing.
You should take up the mantra “Failing fast”. The earlier you fail, the closer you get to succeeding.
Next, let’s talk about imposter syndrome, this is the disease of developers. Every developer at one point or the other has gone through this. Imposter syndrome is the persistent inability to believe that one’s success is deserved or has been legitimately achieved as a result of one’s own efforts or skills (wikipedia). Therefore, when you feel this way, you need to know it is normal and it happens to the best of us.
Another point to note is, the IT space is run by networking.
About 90% of the jobs you will get will be by referrals. In fact, it is faster to get jobs through referrals than any other way, employers find it most suitable to employ people this way.
Therefore, I encourage you, build networks, nurture them and resist the urge to be a lone ranger. There is just too much potential in your networks than you can imagine. I for one have benefitted from my networks asides jobs, I have leveraged them to solve complex problems through peer-programming or just joint brain storming.
There are always so many programs, talks, meet ups, hang outs going on in the tech space because it is an evolving field and attending a number of these events at intervals will you do you a world of good in terms of networking and in keeping up with happenings in the industry. Trust me, you will need these events to catch up in this world because it evolves way faster than the speed of light.
Another point would be to “Learn the basics”. You cannot skip this therefore, it is better to learn this at the start. A lot of people are so eager to get into the thick stuff that they jump the process but the problem here is that, it always comes back to hunt them. Software development is an art and if you do not understand the basics, you cannot build optimal softwares.
So, learn the theories, algorithms, process flow, clean coding, clean architecture, unit testing, etc. These seemingly inconsequential stuff are what make the difference at the top.
As I said earlier, software development is an art, you don’t just throw stuff together and hope the app works, you construct with care, understanding and hope for the future because you should be aiming at building apps today that will be relevant, solid and stable in years to come just like building construction, you have to be precise and conscious of the blocks you use.
There are so many things to write about perhaps, I could do a second part but I will draw the curtain after this next point.
Learning software development is a continuous process
You never stop learning. There is no point at which you can say you have learnt it all; absolutely none. I met someone recently with decades of experience in the industry and he confided in me that he only began to feel like he knew his stuff after the first 9 years in the field because he had finally began to admit that it is a continuous learning curve.
If you are not ready to keep on learning, you might as well abandon this dream now because you could as well be signing up for a life time of learning, making mistakes and learning again.
In summary, here are the major points I think someone new to the field of software development should look out for
- Choose a path and stick to it.
- Value (Expertise) in your chosen path over quantity (having your hands in many cookie jars).
- The imposter syndrome comes for us all, never let it weigh you down.
- Build and nurture your network, it is a very precious currency in this space.
- Never skip learning the basics, they are the foundation. Every solid building has a solid foundation.
- Software development is an art, never you forget that.
- Ours is a path of continuous learning, are you in or out?
I hope this article was helpful and you enjoyed it. You can check me up on
linkedIn: Olufunmbi Adeosun