
Ask HN: How long did it took you to master programming? - fishmeat
I&#x27;ve been learning C and assembly through textbooks its exercises for 4 months. I did well in exams but when I try to look at coding challenges like Project Euler, I felt like I haven&#x27;t learned anything at all.<p>So, how long it took you to master the art? What would you have done to shorten that time?
======
tboyd47
You never really master it. The key is to get comfortable enough with a
popular technology that you don't struggle to complete your daily work,
leaving your mind free to approach higher-level problems.

I got there with Rails after about 2 years of training, self-study, and the
right work environment. I haven't been able to repeat that success, although I
have been exposed to one or two out of these three with many other languages
and tools. I think all three must be present at once to really feel that sense
of mastery. Training for the theory, self-study for the practice, and work
environment for the application.

------
rgacote
40 years so far and working to "master" probably my tenth significant
production programming language.

What I've worked to consistently master over those years is:

    
    
      * listening
      * recognizing patterns
      * turning a blank whiteboard into a plan
      * reading, reading, reading, ...
      * asking for help
      * accepting criticism
    

Getting a little better at it each year. :}

------
techjuice
It will take years to master C and Assembly. This time also increases
especially for Assembly when you start learning new architectures (e.g. MIPS,
PowerPC, SPARC, ARM, etc.). The best way to speed up the learning process is
to use an applied approach (e.g. game development, systems programming,
network programming, microcontroller programming, etc.).

I would recommend getting into building things that have already been built
before (bootloaders, ISO creator's, GUI frameworks, bandwidth monitors,
firewall, kernel modules, etc.) so you have some real world projects under
your belt. As by widening what you work on outside of just textbooks makes you
a better engineer and normally only learned through personal projects or
working for an employer.

------
twobyfour
To be able to write software that functioned? A couple months of study and
practice. (Won't claim the output was any good, but it mostly functioned.)

To be competent? Two years of study plus three years of professional work.

Mastery? I'm not sure anyone ever achieves mastery. But almost 20 years in, I
do continue to improve every year.

------
jerengie
Well in no way I consider myself "master", but my progress is 10 years
ongoing. I am still studying and therefore I did only a few small projects and
just a single one I got paid for.

------
MsMowz
It took several years before I really felt generally competent. I don't think
there's a mastery stage, in the same way that artists never master a medium.

