My husband, who works as a network engineer at a university, told me his student interns peer pressured a new intern into installing Linux OS on the windows machine just so he could be a “real” programmer. He doesn’t normally care except the installation wasn’t successful even after they wasted over two hours. On top of that, the new intern just wanted to use Windows. My husband wanted to dispel their myth but apparently isn’t “real” programmer enough to have the credibility.
Well, I graduated in 2004 from University of Iowa with B.S. Degrees in computer science and math. I started as a software tester and am now a lead engineer.
First of all, I have nothing against Linux. There are people who prefer that OS and that is totally fine. What I’m not fine with is the mythical idea of it being a prerequisite to a successful programming career. Without going into any practical rebuttal, the simple close-minded stubborn nature of this belief is enough to kill your learning skill in this career.
Being rather successful in this field for over ten years I had never once programmed on a Linux system. I’ve used Windows until last year when I switched to use a MacBook mostly because I needed an easy way to test iOS without physical apple devices.
Most companies provide you Windows machines because they are the cheapest to get and they are what people are familiar with. Also most companies do not allow you use any personal devices for work due to data sensitivity and ease of maintenance. Although smaller companies have started to offer people macs to use for local development environment, most are still sticking with windows. I personally think windows is a decent OS for a local development environment. There are plenty of open source tools to make things better for you. For example, chocolaty for packages, kickass console for a decent console. After using macs, I have to say some tasks do perform faster on the MacBook but I have just as many complaints about macs on other areas. However none of these are big enough to prevent me from being a passionate and productive programmer.
As we grow in a career we may form strong opinions; they may be for good reasons but let us not make them prerequisites for anyone. We have our opinions based on our experience and not everyone will have the same. We need promote passion not bigotry. The most important trait you need in the field of IT is to keep an open mind. Because every day a better and shinier tool is made available. While we should refrain from Shiny Object Syndrome, we should constantly evaluate new tools to solve the same puzzle a different way in order to improve performance, maintainability, and/or cost.
So how DO you become a real programmer?
If you want a career in programming, here are some of my suggestions:
- Learn to be passionate. Contribute to an open source project you love.
- Get your code reviewed by a community and review other people’s code.
- Join a local user group to talk to other professionals. Local user groups often do presentations on practical tools and case studies.
- Play with different technologies, languages and tools. Be curious and ask questions.
- Know and practice common code standards. Use tools like lingers, formatters and code analysis.
- Write automated tests for your code.
- Know what cyclomatic complexity is and what is means to your code.
- Refactor your code for maintainability, performance and readability.
- Practice DRY (don’t repeat yourself).
- Be organized and consistent. Comment and document your code.
- Practice separation of concerns.
- Last but not least CARE ABOUT YOUR CODE. Programmers often compare code writing to poetry writing. It takes discipline and work! It’s an art unto itself.