Myths About Programming
Something from my 10+ years experience in Software Engineering and a bit more.
I’ve been developing since 8, using Basic as the first computer language I used to code in. Currently, I’m a game developer with experience in algorithmic trading and neural networks. Today, I want to share some thoughts about myths related to this profession. This publication could be useful for newbies and professionals who are thinking with stereotypes about programming.
A Lot Of Math
Could you solve the example above? I can’t. I bet many great programmers couldn’t. I would say, the math completely isn’t necessary for general developers. Computer Science students learn calculus and use their knowledge in algorithms complexity, but that’s all.
Somebody would tell that math improves the logical brain and trains your mind. Perhaps it would work for people who work on complex math tasks where physics and math are used everywhere. But I’m sure they have separate well-designed and ready-to-use math libraries already tested before.
Of course basic arithmetic is helpful, it helps with solving proportional problems, measure percentages, evaluate conditions, even simple math operations are used with arithmetic. Any other math sections (linear algebra, calculus, geometry, etc.) are too specific. But anyway, even in-game dev, it’s not frequently used and many needed math formulas could be found on the web.
Salary Is Superhigh
High salaries for programmers have been considered quite high for many years. But even this is considered true for most countries, you need to figure out which software engineering direction you are choosing for yourself.
Software development requirements are changing to the needs of the market. If back in 2014 a .Net developer could count on a large number of vacancies and an average salary above $ 80,000, today this median has dropped to $ 70,000 and the need for such specialists has decreased much more. However, things are much better with the developers of machine learning and ethereum blockchain (a high increase in these fields I’m seeing last few months).
There are industries in which wages and demand remain practically unchanged and these industries are only getting better, for example, GameDev, starting with consoles, then moving to computers, mobile devices and now moving into the era of AR / VR games, doesn’t require a lot of new material for study, and the eternal standards remain unchanged, of course, we can talk about improving graphics and optimizations in the open world, but this is not for this topic.
Therefore, the words about high salaries remain true at the moment, but they are already losing their force due to the high competition of personnel and the constant obsolescence of technologies. Maintaining yourself as a competitive developer requires a lot more effort than it seems at first glance.
Working Only 3 Hours On Bali
It seems to most beginners and professionals that when they reach a higher position or acquire more knowledge, the number of tasks stays smaller or the work is reduced only to the control of subordinates, and having the necessary skills, is enough to leave for Bali and work there 3–4 hours a day, receiving sky-high income.
Unfortunately, the time spent is directly proportional to your skills. To date, there is fairly strong competition in the market, developers from Asia are trying to find large projects and reduce their costs to get an offer. In this way, project managers can reduce the cost of payment and increase the requirements for the project.
This is a common indicator of a mature industry.
Indeed, 5–7 years ago, developers were valued like gold, an average developer could be on the island and carry out remote work without thinking about competition. Today, the absence of an employee at compulsory planning meetings, low communication, a small number of hours of work, bad soft skills are one of the main reasons for layoffs.
Development is dragging on, and deadlines are being shorted to save money, programmers are working overtime frequently. At the moment, it has become difficult to evaluate really good developers only by hard skills, since many developers lay a ton of their time only for training, but at the same time, they have rather low self-esteem to compete on wages. Such people also begin to reduce the cost of a programmer in the market.
Programming Is Fun
Many people think that there is a lot of creativity, interesting tasks, great achievements in programming. However, in most cases, this isn’t true. If the development is not at home on your project, then in most cases everything will be limited by the customer’s requirement and/or budget. Everything is built in such a way that each developer, as his skills and experience grow, begins to do more and more routine work — following requirements, building and debugging architecture, fixing complex bugs, testing and optimizing systems, refactoring old parts of the code.
Of course, it depends on the perception, for me, for example, a creative task is one in which the development is not based on the quality of the code, but on the resulting effect.
As one of my past mentors said, there is nothing that cannot be programmed.
I agree with this opinion, it is possible to implement any idea, but it must be in mind that even the most unusual task sometimes rests on the complexity of implementation using existing architectural standards and norms established by programmers. Many highly skilled developers cannot move away from the patterns and paradigms they use, which makes the implementation boring, simple, and reduced to commonplace standards that everyone must follow.
It is also a great honor of time sometimes spent on researching the causes of the problem or studying previously unknown thematic features. As a result, sometimes, for the whole day of hard mental work, only one line of code will be written, although the fatigue will be proportionate to the writing of large functionality. This leads to psychological problems.
Whatever the myths about programming and whatever the industry is, it remains one of the best in terms of convenience and safety. Thanks to the IT industry, humanity has received a large amount of knowledge that previously couldn’t have been obtained without the help of the literature and a huge amount of trial and error in life. Today this problem has been solved and the information field has been expanded. Programming develops thinking, the ability to logical problems solving, as well as creative talents.
Develop, learn and investigate new things, but don’t forget that there is still a world that definitely needs to be explored, don’t be engaged only in work and self-development!