The programming language expertise is an essential part of the development of software. Developers also need to be aware of what’s going on down the stack. Developers who have been around the block several times, however, want you to know that there are a lot of things you should know about writing code for a living that you can’t learn from a college course or a coding academy.
To find out what those things are, we work with a lot of Programmers at the top level. We asked them what they wish they’d known when they first started to code for a living. Whether you’re a recent graduate starting your first developer job, or an older worker who’s transitioned to programming, this will give you a good starting point.
Be Passionate
Love what you are doing, be creative, and do it the best way, better than yesterday.
Programmers are a subset of creators who has the ability of creating the Future and the responsibility of shaping the world said Okpala Izunna, The Lead Software Developer at Information Stash.
In the venture of been passionate, you must love coding in the sense that you have to code clean. No body wants disaster and no professional developer will want to work with a code that is filled with garbage.
Learn about the underlying systems
A big part of software development, of course, is knowing programming languages. But, as several people shared with us, developers also need to know about what’s going on lower down the stack.
Lots of languages abstract away from what is happening at the system level, and that abstraction is useful because it allows developers to be more productive much of the time. But when you hit a roadblock, a really nasty bug, and need a deeper understanding of what’s happening under the hood.
As a developer, chances are you’ll spend a good deal of time working with a fancy IDE or code editor. However, also knowing how to get things done at the command line could occasionally make your life easier.
Your debugger is your friend
A good chunk of your time as a coder will involve tracking down bugs. Learn to use your debugger!! Take that extra day or two to configure it. When you don’t see the expected result, just debug it: set breakpoints, step through your code, and especially 3rd party code. It will save you days of frustration, and even better, you will learn things about coding you can only learn by reading someone else’s code.
Learn to write tests
Some developers feel that unit testing, that is, writing tests to validate that small units of code are doing what they should, is critical. We believe the best bit of advice we’d give someone who wants to learn to program is to learn to write good tests and learn to write your tests really early in the process.
Plan on change and learning new systems
Everyone knows that technology changes quickly these days. That applies not only to our beloved consumer goods, but also to the underlying systems, languages, and tools that programmers use to do their jobs.
We recommends that new coders be prepared for, and stay ahead of, change. Right now, we’re of the mind that you should plan to learn essentially brand new technology stack every ~ 4 years, Good foundational knowledge is always applicable, but the tools and tech you’ll use every day will be completely different every 4 years.
Projects are never written in just one language using one framework anymore… You are never going to work on just one thing in one project, get used to moving from project to project and from language/technology to language/technology.
Play well with others
Despite the stereotypical notion of programmers working alone with their headphones on, developers still have to work other people. Big projects mean lots of moving parts coming together and how they fit together and divide up the problem can create impossible engineering problems if you aren’t careful. Before trying to optimize that one algorithm, work with the team and make sure there isn’t a re-division of the problem that makes each person’s problem simpler. Coding is a team sport!
If you can’t figure it out yourself by re-intuiting the API or debugging, ask for help. Just because you think you’ve written a masterpiece doesn’t mean it isn’t crap or can’t be better. Just like in college, other people in the room have the same questions, or questions only you can answer. Develop a rapport with colleagues. Often just stating the problem aloud enables a open mind moments.
Stepping up to the plate and doing what is asked of you even though it is grunt work will keep you employed as well. But, in that situation, But be careful, you may get stuck doing it all the time.