DEV Community

Discussion on: Is Programming for me?

Collapse
 
team_prunum profile image
team_prunum

It's not that hard. I don't know of anybody who did not get good at programming once they start spending lot of time practicing. Struggling is the fun part of the way.
Programming is mostly about practice and studying data structures/algorithms.

Contrary to popular belief that you should not reinvent the wheel and use already made stuff I think you should try to write everything yourself in the beginning. It is good practice and you will understand how stuff works and what are the tradeoffs of different approaches to problems. Then you can stop "reinventing the wheel" and go for already made solutions if you like them and they are appropriate to your situation.

Also I believe it is necessary to learn low level languages like C at some point, preferably at the beginning. You won't be able to create nice stuff with it at first but you will get deeper understanding what kind of heavy lifting are higher level languages doing for you. It will help you to avoid writing inefficient code that is all over todays internet.

C#, Java, Python, Javascript... are nice tools if used right but to write efficient code you should know what they are doing and not listen to people telling statistical performance difference which is kinda popular right now. There are people out there writing their own memory allocators, hashing algorithms, string handling and other stuff having good reason for it :-)

Also if you are serious about it as a job not as a hobby, eventually you have to learn code organisation and software development processes. Stuff like version controls, writing testable code, correct naming for stuff, patterns, agile etc.. This will come naturally when you are part of experienced team so find a GOOD software company. From my experience the boring ones are better for this. They write a lot of documentation and tests and spend time discussing all the solutions. You won't create many products there but the experience will make you much better developer in the long run.