DEV Community

Ben Halpern
Ben Halpern

Posted on


What did you have the hardest time learning?

What technology or concept tripped you up before you eventually got a grasp? Or maybe it's still causing problems for you?

Top comments (91)

olistik profile image

Work-life balance. ⏱
I feel like I still need to handle them properly.
After that, Rust's borrow checker. πŸ€“

lyavale95 profile image

Totally agree, often be able to combine work-projects-study-life seems imposible. And I don't have kids yet!

olistik profile image

Don't worry. :-D

Thread Thread
exadra37 profile image
Paulo Renato

You excelled yourself on this one ;)

dansilcox profile image
Dan Silcox

How much of software development is not actual software development - so much is talking to people, thinking about approaches, research, etc etc etc - it's not just a case of "make stuff" there is soooo much more too it!

attkinsonjakob profile image
Jakob Attkinson

development =/= coding. Writing the code is usually the easiest part. Everything else is what a company pays us for.

sarthology profile image
Sarthak Sharma

Mastering the skill of saying NO.

torianne02 profile image
Victoria Crawford

Learning how to realize when it is time to walk away and take a break when trying to debug a problem.

JavaScript Promises were also a really tough one for me to grasp. It took waaaaay longer than I'm proud to admit. 🀣

storrence88 profile image
Steven Torrence

When I realized that sometimes a good night's sleep is WAY more beneficial than trying to push through, it was a game changer for me!

newah1 profile image
Noah Doughton

Wise words! This was hard for me, too. Sometimes I'd get a magic solution in my sleep, it would seem.

martyhimmel profile image
Martin Himmel

This is very specific, but pointers and references in C++. I started going through a couple books on C++ around 2001 or 2002. When it got to the chapter on pointers and references, it did not make sense to me.

About 3 years ago, I was teaching JS and PHP to a few coworkers. A question came up where I ended up explaining pass-by-value and pass-by-reference, and how they work in memory. At the end of my explanation, I realized I finally understood how pointers/references in C++ work (generally, not syntactically - it's been too long for that), while using PHP as the example. πŸ˜…

maurocon3ras profile image
Mauricio Contreras • Edited

DevOps, so many definitions, colors and flavors to choose. Some are hard to implement and others are so good.

Some people think DevOps is a state of mind, let’s do yoga and meditation, everything is going to be ok.

moopet profile image
Ben Sinclair • Edited

To be honest, relational databases.

They seem so straightforward, right?

I went into university as a self-taught C/asm programmer and I thought I knew a fair bit. My databases course was really difficult.

I admit I was that student who didn't always turn up on time, or at all.

I got 0% on my databases exam, because I handed in a piece of "artwork" instead. I drew a scene with a man in tatty clothing lugging a grandfather clock on his back down a long stretch of beach. I remember this because it was a representation of how I felt time was dragging in the exam, and I didn't understand the questions well enough to bother trying to answer them; I knew I would fail.

It wasn't until years later, when PHP/MySQL was just starting to get attention, and I found an example of the simplest thing on someone's website. It showed me how to make a guestbook. Remember them? And it explained what it was doing step-by-step, and I understood it without even furrowing my brow.

The lecturers at my university had thrown us into the technical side of things straight away, trying to teach us data concepts without giving the simple example, the td;dr we're used to seeing at the top of documentation these days.

Then I went on to become the SQL ninja I am today, who only rarely brings down production with a missing clause.

lyavale95 profile image

I had a similar "climbing road" for data structures.

jkhaui profile image
Jordy Lee

Haha tell me about it. Thought I could wing my intro to databases class with some programming knowledge... Guess the joke was on me πŸ˜₯

jeky_zero profile image
Jeky • Edited

Tbh I think one of the trickiest things, at least when first starting out, is all the new terminology.

You have regular words that take on new meanings. Or words that sound kind of familiar but you're still unsure of, and then loads of alien words that you've never heard anywhere before.

Most concepts behind the words, you come to realise, when understood on their own, are relatively straight-forward, or can at least be reasoned about through abstraction via a neat analogy.

The apprehension about how complicated and complex the new terms make it seem, is always worse than the actuality.

attkinsonjakob profile image
Jakob Attkinson

I'd like to take one step back and say that I had (and still have) the hardest time learning how to learn.
Sometimes you deal with a time sensitive problem so you "hack" a solution without having the time to properly understand it. Sometimes you're just too tired so you "get things done", one way or the other... Regardless what it is, most of the time, I realize that I do things while missing opportunities to learn.

withpyaar profile image
with Pyaar

I hate that

attkinsonjakob profile image
Jakob Attkinson

what's that?

daisydevelops profile image
Daisy Develops

JavaScript's async/await. I cut my teeth on "spaghetti code" callbacks (AKA callback hell), and developed different strategies/styles for handling them. Now I get easily confused with the simpler(?) constructs for async/await. I bypassed learning Promises entirely, that may have been a mistake :D

andreasjakof profile image
Andreas Jakof

Lambdas took me quite some time. Now I love them.

I still struggle with ASP.NET WebForms. It does everything to pretend for you to just write some desktop app. But if you use it this way, it won't work.
I solved it, by moving on to ASP.NET MVC, where at least I know, THIS is server code and THAT is client code.

snj profile image
Nic • Edited

I can not remember the properties, need to search it whenever I use it, I don't need to work much with it in my daily work, luckily!
I can not get the logical pattern of CSS. It's complicated for me.
Any suggestions?

jenbutondevto profile image

I was very slow with css when I first started! I suppose my proficiency came from being a fe developer and being exposed to it all the time. There are very few you have to remember, everything is googleable or on a cheat sheet. If you have a nice text editor that has auto-complete for css you can probably make good guesses on what the properties will be.

What do you mean logical pattern of CSS? Specificity?

badrecordlength profile image
Henry πŸ‘¨β€πŸ’»

Hmm, great question.
Academically I'd probably have to say Boolean Algebra Simplification. More generally, probably learning to push anxiety aside and to face problems head on, fixing things sooner rather than later (though often scary), will always be better in the long run.

devjev profile image
Jevgeni Tarasov • Edited

This is beautifully well put!

I feel like OOP and quite some DSLs land in this uncanny valley of semantics, where sterile examples look super cool, easy, and humane, but the minute you start using it, there is so much magic and implied stuff going under the hood that you are never sure if what you're doing is right.

dylanesque profile image
Michael Caveney

The big one for me is D3.js. I understand the core mechanic, and there are good resources out there from folks like Ben Clinkenbeard and Shirley Wu, but there are so many little moving parts you need to get to work quickly with that library. If it was the only thing I needed to learn I would be much further along, but hats off to people who have deeply mastered it; I think it's the most challenging JavaScript library/framework I've come across by a country mile.

50 CLI Tools You Can't Live Without

The top 50 must-have CLI tools, including some scripts to help you automate the installation and updating of these tools on various systems/distros.