Answer the question
In order to leave comments, you need to log in
How to grow from a coder to a programmer?
Good afternoon.
To clarify the question:
A coder (for me) is a person who is able to write good code
A programmer is a specialist who understands many aspects of the language in which he works, as well as in related areas, such as mathematics.
At the moment, I can position myself as a C ++ coder - knowledge and use of all standards up to 17 inclusive, the ability to work with multi-threaded primitives, the ability to optimize code, deal with someone else's, etc.
But I have no doubt that, in fact, I don’t know how to do anything specific: writing the simplest KMP can take forever, because I delve into the code and look for optimal methods for several hours, while it would be possible to implement more cumbersome, but in two hours or less. There is no idea about the asymptotic complexity of algorithms and data structures.
In general, the thought sits in my head that the only thing I can do is write beautiful and efficient code. Where to dig to get rid of it? So far, I'm studying books on algorithms, but this seems to me not enough.
Answer the question
In order to leave comments, you need to log in
I think good programmers are all idealists. That is why they always dislike what they do. Today it seems to you that you are writing beautiful code. And a month later you look at your same code, and think: - "Damn, what a freak wrote this, well, how is it possible."))
A coder and a programmer are one and the same, it seems to me.
From a linguistic point of view, this is the person who speaks the language of the machine.
Anyone who knows how to write code - that is, knows how to make the machine work.
In fact, in nature there is such a division:
1) fitters (work within the framework of the finished architecture) 90% of the population
2) engineers (develop architecture) 10% of the population
If you want to become an engineer, you just need to study more - read all university textbooks for software engineers and practice.
and looking for the best methods for several hours
So far, I'm studying books on algorithms, but this seems to me not enough.There is still an immense layer - business logic. It doesn't smell like mathematics. This is a special sorcery.
I think everything is fine with you. Depressive thoughts do not occur in our profession. If you want changes, then find (change) a job where you will have a clear deadline before which you will not have time to think about how beautiful it is here, and how to correct it here. You just take it and do it, that's all.
Well, read books books
https://habr.com/post/251747/
https://tproger.ru/curriculum/computer-science-ste...
Your problem is that you don't plan to develop the program.
Ask yourself: what can I write today?
And try to write it.
This way you will learn how to measure code in workdays. And you will start looking for solutions to the problem, not "how to write beautiful code", but "how to write so much code and not go crazy."
Because real programs are measured in man-years.
If you find a way to write a program of, say, 10 man-years in 5 man-years, then it will already be economically profitable to do it. You will start looking for funding options for your project.
This is how you create a successful software development company.
There is cheap code and expensive code. You are now a novice developer, so your code is worth nothing, and you can spend at least a month solving some problem that some student at the Olympiad will solve in two hours.
But the more you know, the more expensive your time is, and in three years you will no longer have this month. Therefore, you need to learn how to program quickly, that is, cost-effectively.
Otherwise, in three years you will start doing something else, maybe even not directly related to programming. It's just that it will bring you more money than programming.
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question