Senior software developers share some experiences and lessons about professional programming, which are summarized after years of experience. If you're new to the world of professional software development, you already have some knowledge thanks to your education and/or training in computer science and programming. But real development business work is different from programming in school, and it's something you can't learn from a college course or coding school. To find out what new programmers need to know, I consulted some seasoned coders with at least a decade (or decades) of experience as professional software engineers. My question was, if they were looking back now, what skills and knowledge would they wish they had mastered when they first started writing code for a living. Whether you're a fresh graduate starting your first development job or an older worker transitioning into programming, read these 7 tips for new programmers.
1. Understand the underlying system An important part of software development is knowing programming languages. However, as some have suggested, developers also need to understand what's going on underneath the stack. "Many languages abstract away what's going on at the system level, and that abstraction is useful because it makes developers more productive most of the time," said Pete Bull, a support engineer at Acquia. "But when you hit a snag, a particularly solid bug, and need to get a deeper understanding of what's going on internally, then understanding the underlying system is a very useful skill, allowing you to debug processes, look at system calls, and really see how a piece of code interacts with the rest of the system," he wrote in an email. Similarly, Robert Douglass, VP of Customer Satisfaction with Platform.sh, told me, “When I first started programming, there were a lot of things I didn’t understand about computers. File systems, networking, and memory were three obvious examples. Not understanding these meant I didn’t know the purpose of some of the programming constructs I was trying to present.” 2. Know command line tools As a developer, you will definitely spend a lot of time in an IDE or code editor. However, knowing the command line tool can help you get your work done more conveniently. "Sometimes you may be in a situation where you need to get a task done urgently but your tools are limited," a 20-year veteran programmer who wishes to remain anonymous told me. "Knowing the shell should be like breathing. Knowing tools like find, comm, diff, vi/vim, sed, awk, etc. Knowing how to use the command line to find files, etc., can make your life easier when writing scripts." Bull, a programmer who started with Microsoft tools and then gradually moved to Linux, agrees: "It's really important to know the ins and outs of the command line and master all the utilities. I've learned that firsthand." 3. The debugger is our good friend A large part of a programmer's time involves tracking down bugs. Dave Varon, a bioinformatics developer at Novartis, emphasized the benefits of a debugger and how it mitigates the initial cost of time. "Make sure you learn how to use a debugger!" he told me. "It takes a day or two to configure it beforehand. If you don't get the results you expect, debug: set breakpoints, step through the code, and pay special attention to third-party code. This can save a lot of frustration and give you a better understanding of coding that you can only learn by reading someone else's code." 4. Learn to write tests Some developers believe that unit testing, writing tests to verify that small units of code are doing what they are supposed to do, is critical. Richard Handloff, a database developer at Strategic Power Systems, is one of them. "I think the best advice I ever give to someone who wants to learn programming is to learn to write good tests and learn to write them early in the process," he wrote to me in an email. 5. Proactively respond to change and learn new systems As we all know, technology changes rapidly these days. This applies not only to the consumer products we love, but also to the underlying systems, languages, and tools that programmers use. Adam Wulf, mobile developer and founder of Milestone Made, advises being proactive about change and staying on the cutting edge of technology. "Right now, my advice is to plan on learning a basically new technology stack every four years," he said. "The good basics will always be there, but the tools and technologies you use every day are going to be completely different every four years or so." "You can never stick with just one language and one framework for a project," said one developer who wished to remain anonymous. "You can't be stuck with one technology, get used to moving from project to project, and from one language/technology to another," he wrote. 6. Good cooperation Even though programmers are used to putting on headphones and working alone, you still need to collaborate with others. Ben Miller, CTO of Sinclair Digital, emphasizes the importance of teamwork to career success. "Big projects often mean a collision of many moving parts, and the need to deal with how components fit together and divide can lead to unpredictable engineering problems if you're not careful," he wrote in an email. "Before optimizing an algorithm, working with the team to ensure that no problems are cross-cutting can make the problem easier for everyone to solve. Coding is a team game!" Varon reiterated the importance of interpersonal skills, saying, “If you can’t figure out the root cause of the problem by revisiting the API and debugging, then ask for help. Just because you think you wrote a masterpiece doesn’t mean there’s no bullshit or it can’t be better. Get along with your colleagues. Sometimes just talking about the problem out loud can lead to a light bulb moment.” Some anonymous people also shared similar ideas, such as being a team player. "Improve team cohesion and be willing to help others, even if it is some trivial work," he said. However, in this case, he warned, "There must be a limit. Don't pick up sesame seeds and lose watermelons and forget your own job." 7. Don’t be afraid of losing your job Miller had a particularly interesting piece of advice. “Job hopping is about promotion,” he told me. “Find the simplest way to solve a problem that makes your code resilient and maintenance-free, so your bosses will give you more to do. They may even ask you to teach others how you do it,” he explained. “In short, worrying about losing your job can hinder career advancement.” |
<<: Everything developers need to know about Android M's new runtime permissions
>>: Build a secure app! iOS security series: HTTPS advanced
On June 1, 2020, the China Automobile Dealers Ass...
Leviathan Press: Seeing Munchausen syndrome, it i...
There is a variety show that inserts advertisemen...
Translator’s Note: 1. Since this is a technical a...
Who says romance is only about sweet words and co...
If you were planning a sophisticated heist on one...
Every year, many customers use Zhihu promotion pl...
Young looks at the stars, chasing the stars and p...
Now when it comes to chasing hot topics and lever...
When we think of robots, the images that come to ...
Now, all accounts on Douyin with a certain number...
Recently, overseas media exposed the latest spy p...
How much does it cost to join the Urumqi wedding ...
Every November, the world's " most expen...
The author of this article, Nate Cook, is an inde...