From Rookie to Seasoned Developer

samir
NowFloats
Published in
3 min readJan 20, 2017

Most fresh graduates aren’t well prepared by their colleges to transition to the life of a software developer. They have to move from the world of writing code from scratch (or copying it) to understanding code someone else has written.

That’s not the case with every profession. Medical students are well trained on the job to become doctors. Teachers learn how to teach when they are teaching assistants during their graduate programs.

Why isn’t that the case with computer science? One reason is that the profession is young. About 70 years compared to the 1000s of year old professions of medicine and teaching.

The other is that developers need considerable environment know-how to be effective. Developers need to understand how the existing code base works and how permissions, deployments etc work. What doctors learn about disease and the human body is directly transferable from one hospital to another. What teachers learn about their subject matter and teaching methods are directly transferable from one university to another.

The good news is that internships during the course are growing in popularity. But if a fresher doesn’t get an internship opportunity then he/she should definitely contribute to open source projects. That’s the best way outside a job that a person can learn critical skills necessary to be a good developer. Just pick up any open source software you like, like Firefox, see the check ins that other contributors are making and pick up some of the tasks in their pipeline.

What a rookie needs to learn

Good code

Good code is written for humans, not for computers. Good code is easy to read, easy to debug. It implements only the features that are needed now but allows for the capability to extend without having to refactor. It’s scalable, maintainable and extensible. Good code is well commented so that one can just read the comments and understand the algorithm. Each of it’s functions does only one thing. The names of variables, functions and classes are meaningful. It never has if conditions based on customer name or environment. Those things are put in config files.

Think

Seasoned developers spend a lot of time thinking about the problem. Not only about possible ways to solve them but also about whether solving a different problem would get the same or better result. Or whether there already exists a solution to this problem that can be bought. They think broadly about all the aspects of the problem. About maintenance. About success criteria. About failure scenarios. About how this will affect other parts of the program. And other parts of the business.

Communicate and collaborate

Seasoned developers know that a lot of information is lost in transit. They make sure they document decisions made and specify in detail interfaces and responsibilities. They make sure the hard problems are identified and tackled early rather than kept for later. Good developers proactively make suggestions and inform the team about delays and breakthroughs. They follow up and respond on time.

Responsible

One of the most important qualities of not just a developer but in any occupation is taking the responsibility of a task. This means doing something they say they’ll do and on time. They push back on aggressive timelines or randomisations. They know that their work isn’t valuable until it’s shipped. They don’t just check in and forget about it. They keep at it until it’s deployed and has made a significant impact.

Impact

Seasoned programmers realise that the Pareto rule applies in coding as well. 20% of the time they spend will result in 80% of the value created. Oftentimes small features take up a lot of time in getting them to work. They’ll push these to v2. They’ll talk to other departments and understand the business better. They know that code is just part of the solution. And that creating an impact is more valuable than writing difficult code.

Learn

Seasoned professionals realize the importance of continuously learning. They are continuously reading books, building stuff and then teaching others. Because they know that the best way to grow is to learn. And the best way to learn is to teach.

--

--