DEV Community

Adam McKenna
Adam McKenna

Posted on

What have been your biggest learning curves as developers? #discuss

There are so many areas in Computer Science and the technologies that make up this vast sector can range from basic to outlandishly complex and difficult.

The web, for example, encapsulates just one area of the industry, yet in itself has an immeasurable amount of languages, frameworks, tools etc. I'm sure the typical web developer could rattle off 20-30 off the top of their head.

But, each and every concept/language/technology/tool required some form of learning to begin to us - whether basic or otherwise.

Tough learning curves can be occur for a number of reasons. Perhaps that language had poor or non-existent documentation; perhaps it was difficult to find support online or from peers for that tool; perhaps that technology required context from another technology to learn it effectively?

Whatever the reason and whatever the concept/language/technology tool, it is very interesting, and often surprising, to discover what people in the industry have found to be the steepest learning curves, and why this was the case.

And, perhaps by addressing and discussing some of the learning curves faced, we can begin to find solutions to the issues for future generations of developers.

So, what have been your biggest learning curves, and why?

Top comments (9)

jjjjcccjjf profile image

Exiting vim

tiffany profile image

Algorithmic thinking is by far my biggest hurdle. I am getting much better at it but when I started I was really, really bad.

Programming in general has really broadened my way of thinking. I think about abstract concepts in a clearer, more logical way which has helped me with things like calculus and other hard-ish math.

isaacdlyman profile image
Isaac Lyman

Asynchronous programming and Promises. I had a pretty good handle on synchronous programming and control flows, but async is a whole new world, requiring a new way of approaching almost everything. It took me a long time to lock that one down.

jehillert profile image
John Hillert


jfrankcarr profile image
Frank Carr

Gaining an understanding of OOP back in the early days of C++ was probably the most challenging.

The most tedious and frustrating for me have been development and/or reporting systems that didn't follow either a C/C++ style or a BASIC style syntax. These often came with other quirks as well, such as storing code as binary, rather than ASCII, files.

dougmckechie profile image
Douglas McKechie

Learning native mobile development was probably one of the hardest things I ever did, there was a very steep learning curve as it was quite different to what I had done before, which was mostly just web development.

Documentation was an issue, often I found a third-party source of documentation to be more helpful than the official source.

I suppose the 80/20 rule applied here as well. It was straightforward to do 80% of the app and get good documentation on the mobile framework features used to build that 80% of it. But took quite some time to complete the remaining 20% after lots of digging online and often though trial and error.

shiroihana013 profile image

It's not much of a learning curve but I would say my greatest block would by my own self confidence.

It's cheesy but if you put your mind towards something you can do it.

In college I suffered a lot of self confidence loss and really started to struggle when it came to learning new things. But I found I would go through a phase of stubborn "I'm not ready to fail yet." In would work harder to catch up for what I lost.

kspeakman profile image
Kasey Speakman

There have been several steep ones like: cross-browser CSS (before widely adopted standards). Writing multi-threaded server apps. SOLID principles for OOP. The latest one has been functional programming. I'd say overall the thing I still find challenging is just organizing my code properly.

hussein_cheayto profile image
hussein cheayto

Investing on myself by purchasing Udemy courses. But first, my first job as a Unity Game Developer.