The beginnings of working as a software developer may be confusing and challenging. Sprints, projects, meetings, coding, testing, debugging, testing, debugging, testing… And on the top of that neverending pressure to learn and grow.
Yes, this may be overwhelming sometimes. That’s why we talked to our senior developers and prepare this great list of 23 tips that juniors should have in mind when starting their careers!
Learning
1. Learning by doing
I’ve done my fair share of teaching and can confirm what many senior developers say: the only way to learn these things is by using them. Following tutorials is fine, but if you really want to learn how to use a programming language, you have to make something real with it. Preferably something that you are passionate about or at least interested in. If you are learning for mobile web app development, maybe make yourself an app for your own phone; one that you actually need. Follow the advice of Dave Mello and “Build stuff. Functional things. Practical things. Things that show your ability to think through a problem from beginning to end”.
2. Have side projects
Even if you already work for a software development agency, you should (as this blog and this article suggest) have side projects, where you can hone your skills working on something you personally find important.
3. Do your homework
Read the technical manuals, check on StackOverflow, read forums and discussion threads, listen to other developers, experiment. Learn about your tools. It will pay off in the future.
4. Read those error messages
Error messages are there for a reason. We all got used to dismissing whatever windows pop up on our screen, mostly because it’s Windows, an OS which would have a confirmation window for the airbag if it was a car. Not that the average user would understand the error message if they read it. You however are not an average user. For you, the error message is a source of information, as it tells you what you actually got wrong. It will help you fix the root problem, rather than just randomly patching up the symptoms (which is a good idea in itself). So read it. Then re-read it. Make sure you absorbed all the information there. Check references if you have to. And if you are one of the people writing those error messages, please try and make them as comprehensive and understandable as possible.
Surviving Your First Assignments
5. Don’t code alone
A senior developer friend told me this as the first rule for junior developers. Don’t try to solve everything alone. Ask questions. There is a reason why developers work in teams. There are more experienced people working with you and even your peers might know something you don’t. Just remember to express your query clearly, point out how you’ve already tried to solve the problem. Make sure they know you’ve done your homework.
Remember – you can always count on your team mates to help you out!
6. You are adequate
Whether you work for a tech giant, one of the top mobile app development companies, or a small custom software agency, they probably did not hire you for your looks. Many of us suffer from feelings of inadequacy, anxiety, or impostor syndrome in a new job. Try to push those feelings away or focus them into energy for doing an even better job. You got the job, so clearly someone thought you were capable of doing it. Now you just have to prove them right.
7. Don’t be intimidated
It can be especially hard when you see the great job done by more senior developers. Remember that what people show is the end result, not the hundreds of hours of correcting mistakes and learning new stuff. Your end result can be just as good, so don’t get discouraged, treat their great work as inspiration.
8. Nobody’s stupid…
For the most part, the people working with you at a software development agency are very smart. So don’t assume that a mistake or a bad decision comes from people’s incompetence, rather try to ask yourself why these smart, well-meaning people made this mistake or came to a stupid conclusion. If a piece of code is ugly or weird it is not necessarily because people are incompetent or don’t care. There is often a good reason for this, be it expediency or efficiency.
9. …infallible
Then again, nobody’s perfect. People do make mistakes, operate on incomplete data or under false assumptions, or simply drive towards an objective different from yours. Never assume that a piece of code is perfect and absolutely free of errors, nor that these errors are the effect of insufficient care or competence.
10. …or evil.
In the same vein, incompetence is much more likely than malice. Don’t immediately assume that someone is doing something just to spite you or to deliberately sabotage your work. Such thinking will ruin your relationship with your colleagues.
Seeing the Bigger Picture
11. Zoom out
Codementor advises junior developers to have a broader outlook than just the little piece of code they are currently working on. Take a step back from your work and consider how it will affect the rest of the code and how it will operate within the OS. Will it cause problems for other developers? Will it get into conflicts with other apps or systems? If you’re doing hybrid or cross-platform mobile app development, how will your app look and perform on the other platform? Somewhere in the future others may have to maintain or upgrade your app. Have you made their lives easier or harder? Sometimes a hack may help you improve efficiency or fix an error, but will it require half the code to be rewritten for future updates?
12. Code for the users
Perhaps more importantly, this software you are writing is for someone. You are not creating it for your own use, nor for your software development agency. Very often even your client is not the actual end user of the software. Nevertheless, there is an end user. Make sure you understand who they are and how your decisions might affect their experience. In the end, they are the be-all and end-all of software development. Be like Tron, code for the users.
13. Remember: this is a business
IT industry is famous for its relaxed attitudes, expressed by calling everyone by their first name, open office plans, and pool tables in the common room. Nevertheless, a custom software development company is first and foremost a company. Make sure you understand how the business side of the company operates and what its objectives are. It’ll help you deliver what your bosses need.
14. Office politics
Remember, that no matter how much you like it, it’s a job, not a hobby, with all the inglorious office politics you can find in any workplace. For example, unless you are told to do something in writing, it’s your fault, so make sure that management confirms (by e-mail for instance) their instructions. It’ll also help you make sure you understand them. Furthermore, remember that other people’s career progress might be at odds with yours. Don’t trust blindly. Then again…
15. Networking
Everybody stresses the importance of networking (just look here or here) and for good reason. You are not alone out there. Make friends with other developers. Your friends and colleagues are the ones who will tell you about new job opportunities. They will let you know about the latest developments in your branch of the industry. They will speak for you when your promotion comes up in a meeting. Finally, they are your best resource for learning new stuff and honing your skills.
Finding Balance
16. Don’t be afraid to cut yourself off
Some of us thrive in the noise of a busy workplace. Many developers prefer the atmosphere of a workplace, even though they could work from home. On the other hand, it can occasionally be a hindrance. Let’s face it, sometimes you just need to get things done, without the interference of all the interaction and creativity that comes from an open office plan. So if you need to, cut yourself off. I know a coder who works in noise canceling ear protectors, others put on headphones and listen to music or just white noise. Don’t worry about people not being able to get through to you. They might be wasting your time anyway. Just don’t do it all the time, be sociable when you can.
17. Work-life balance
This is a universally repeated piece of advice, probably because the IT industry is infamous for being terrible at this. Many senior developers warn of the dangers of early burnout. You may feel invincible now. You may be able to pull an all-nighter, work normally the next day, and go to a party afterward to top it all off, but this lifestyle won’t last past the age of thirty. In the meantime, what it will do is wreak havoc on your health and destroy your productivity. Be reasonable, strive to find a balance between your work, your interests, and your personal life. More specifically…
18. Get some sleep
Yet another one, which comes up a lot. This may seem no more relevant for a software development agency than for any other job, but the tech industry is infamous for keeping ridiculous hours. Some developers are even proud of it. The truth is, however, that working too long reduces your effectiveness, as does lack of sleep, not to mention the health risks of the latter. Remember that staring at a screen disrupts your circadian rhythms and since you have to spend most of your workday in front of a screen, don’t do it in bed, or at least use a blue light filter. Getting a good night’s sleep today will make you much more productive tomorrow. In the words of Ariana Huffington: “Sleep your way to success”.
We all love some night coding sessions from time to time. But being well rested is A MUST.
Soft Skills
19. Soft skills matter
You are all great at coding, but coding is not your whole work life. So get some soft skills. Learn how to write proper emails. Most people are surprisingly bad at this. Write clearly about your point, in a language appropriate for your intended recipient. Don’t use jargon unnecessarily and don’t ignore the rules of spelling and punctuation. Unless your e-mail is intended for a colleague, use proper forms and greetings, this will go far to make you seem like a serious professional. Learn to ask questions and respond to them in a thoughtful manner. This ain’t the comments section on FB. Learn to deliver presentations. You’re going to have to argue your points or describe your work in meetings. Communication is crucial. Speaking of communication…
20. Know Your English
Although English is the lingua franca of the tech community, you won’t find this one on many advice lists. Mostly, because many developers are native speakers. However, many non-natives tend to overlook this, to their detriment. You may feel like you already know enough English, after all, you probably use it daily in your work, but most people don’t know it nearly as well as they think. Whatever you may have been told, you can’t learn a language just by using it at work – enroll in a course (your company will probably happily pay for it). It will pay off in better communication, better understanding, and better job opportunities.
21. Take notes
Learn to write down things in a quick and clear manner. It’ll help you avoid having to ask the same question twice. It’ll help you remember what you did, how you did it and why. Finally, it’ll create a paper trail if anyone ever challenges you on what you’ve done.
22. Be professional
Senior Developers sometimes accuse younger colleagues of not taking their jobs seriously enough. You need to do more than just live up to your current position. Remember the advice of dressing for the job you want? Well, the same goes for actual work. You have to go at least a little bit above and beyond what you promised and what is expected of you. That’s the only way to progress in your career. Finish that code a few days before the deadline if you can.
Never stop learning
23. Develop, develop, develop
Yourself, not just apps. The tech industry moves faster than any other. So learn new skills, don’t get complacent, and don’t be afraid of change. Remember, there is already an AI in development that’ll do your current job.
Are you looking for an amazing career opportunity? We are searching for great talent. If you want to join Ideamotive Team of software heroes, check out our current job openings or just drop us a line!