DEV Community

What did you have the hardest time learning?

Ben Halpern on November 13, 2019

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

Collapse
 
olistik profile image
olistik

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

Collapse
 
lyavale95 profile image
LyAVALE95

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

Collapse
 
olistik profile image
olistik

Don't worry. :-D

Thread Thread
 
exadra37 profile image
Paulo Renato

You excelled yourself on this one ;)

Collapse
 
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!

Collapse
 
attkinsonjakob profile image
Jakob Attkinson

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

Collapse
 
sarthology profile image
Sarthak Sharma

Mastering the skill of saying NO.

Collapse
 
torianne02 profile image
Tori 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. 🀣

Collapse
 
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!

Collapse
 
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.

Collapse
 
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. πŸ˜…

Collapse
 
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.

Collapse
 
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.

Collapse
 
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.

Collapse
 
withpyaar profile image
with Pyaar

I hate that

Collapse
 
attkinsonjakob profile image
Jakob Attkinson

what's that?

Collapse
 
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.

Collapse
 
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 πŸ˜₯

Collapse
 
lyavale95 profile image
LyAVALE95

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

Collapse
 
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

Collapse
 
katafrakt profile image
PaweΕ‚ ŚwiΔ…tkowski

Rust. I tried maybe three or four times, I understand concepts such as Option monad etc. but I really cannot write code that makes sense in it.

Collapse
 
snj profile image
Nic

Hah,
Since Rust is so hard to learn, why many developers love it at StackOverflow.
I think it's not easy, it really needs more time to understand the borrow checker.

Collapse
 
katafrakt profile image
PaweΕ‚ ŚwiΔ…tkowski • Edited

Yeah, borrow checker is a b**ch, although I think I mostly figured it out. But I think the docs about it could be better.

Collapse
 
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.

Collapse
 
dyland profile image
Dylan Davenport

Deciding what JS library/ framework to learn πŸ˜’ I enjoy Vue more but have come to the game unfortunate realization that there aren’t very many Vue jobs in my area. Therefore I’ll have to focus on React.

Collapse
 
sammerro profile image
MichaΕ‚ Kowalski

I work as a Vue developer. Maybe there is something? Where are you located?

Collapse
 
dyland profile image
Dylan Davenport

I live in the US. There are a few of places near me that are looking for Vue experience but they always phrase it as β€œMust know a JS framework like Vue, React or Angular”. It’s very vague.

Collapse
 
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.

Collapse
 
szabikr profile image
Szabi • Edited

I am in the middle of learning AWS fundamentals in order to know what is capable of and how to use different services. Is probably the hardest bit so far and Amazon also charges money for a bunch of stuff even when you are doing tutorials.

RxJs is also a difficult concept to grasp.

Collapse
 
pavelloz profile image
PaweΕ‚ Kowalski

I recommend learning streams in nodejs before sitting down to rxjs. It should help a little bit.

Collapse
 
szabikr profile image
Szabi

Thanks for this!

Collapse
 
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.

Collapse
 
snj profile image
Nic • Edited

CSS,
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?

Collapse
 
jenbutondevto profile image
Jen

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?

Collapse
 
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.

Collapse
 
ferricoxide profile image
Thomas H Jones II

I feel like I have less problems learning wholly new things than learning different implementations of things I already know. In the former case, it's often just an exercise in "take what you know and use that to help you absorb this new stuff". Whereas, in the latter case, it often comes down to "unlearn what you previously internalized so that it doesn't get in the way of this new method for doing old tasks."

Collapse
 
zoltanhalasz profile image
Zoltan Halasz • Edited

In terms of software technology: Angular, Modelview-ViewModel, Entity Framework. In terms of job, my last job as Management Accountant was more complex than anything in software development. In terms of study, high school was very challenging, as well as my Management Accounting certification.

Collapse
 
tunaxor profile image
Angel Daniel Munoz Gonzalez

F# was the hardest thing for me I started with it in 2015 while I got the ideas of FP and actually helped me a lot to improve my javascript I couldn't just write meaningful stuff in F# I was back and forth over the years. It wasn't until recently I found out a web framework similar to express (Giraffe) which helped me to finally write and grasp that stuff I could write was kind of similar to what I had done previously in javascript

Things I'm still struggling with:

  1. Rust
  2. The "recent" MVU Pattern (popularized by elmlang)

Rust in the sense that I still don't feel like I'm writing meaningful code with it though I'm in the phase of being away from it, perhaps I'll come closer to it next year.
And MVU pattern kind of I get the idea, but I don't get the idea on how to work with multiple views like in a SPA

Functional concepts are nice, and I can apply some of them (Not all I don't like the purist approach to it) in my javascript code where it makes sense but on other languages it is just so enforced takes me out of my mental model sometimes

Collapse
 
sjellen profile image
SJellen

The big O.

Collapse
 
torianne02 profile image
Tori Crawford

I'm still struggling with feeling confident with this one.

Collapse
 
cmelgarejo profile image
Christian Melgarejo

How to deal with other people, specially on my bad days...or their bad days 🀣

Collapse
 
nombrekeff profile image
Keff • Edited

Integrating TradingView charts into an angular project, weird stuff... (It was not that bad, but really confusing and different to any other lib I've integrated...)

Work-life balance. ⏱

Yup, this one was hard for me also...

Collapse
 
mikeschultz profile image
Mike

Myself...it's an ever learning experience. And regex. I swear I have to re-learn it every time I need it, and always forget it after a week of not using it.

Collapse
 
snj profile image
Nic • Edited

The same feeling about regex,
and there are some trivial differences between different programming languages.

Collapse
 
nektro profile image
Meghan (she/her)

The pipeline of OAuth2 works. Didn't understand it for the longest time, now it's a breeze and I use it everywhere!

Collapse
 
peledzohar profile image
Zohar Peled

Multithreading. I mean, I got the concept pretty fast, but getting it right with all the locks and semaphores simply didn't sit well for the longest time. Honestly, I'm not sure I get it now, 20 years after learning about it the first time - though to be fair, I can count on one hand the number of times I've actually used threads, so not much practice in that area.

Collapse
 
alexanderbelldev profile image
Alexander Bell • Edited

How to stay focused in a loud workplace with plenty of meetings occurring throughout the days and many distractions. I'm not quite there yet as I find it rather easy to lose focus from the task especially if its something I don't particularly want to be doing.

Collapse
 
jeddevs profile image
Theo

Learning Visual Coding in Unreal Engine.
I find working in Visual Coding compared to Lua, Python or C# Object-Oriented Programing to be impossible. There is no single frame or principles you can work off. There's a custom term for everything.

When in Roblox Studio or Unity you have some basics you can work off such as:
Classes, Remote Events, Vectors and CFrames and Tweening which you can then build off but when you enter Unreal everything has a custom term which really makes learning it a real hassle, you can't develop off any pillars, you are launched in the deep end even if it looks easier. I'd honestly prefer to learn French (Ok..Maybe not honestly).

Collapse
 
jmfayard profile image
Jean-Michel πŸ•΅πŸ»β€β™‚οΈ Fayard

Soft skils

Two podcasts that helped me:

Also a workshop in non violent communication that was eyes opening

Collapse
 
lyavale95 profile image
LyAVALE95

I'm totally into Developer-tea, it's amazing.

Collapse
 
withpyaar profile image
with Pyaar

Developer tea is the best

Collapse
 
andrewharpin profile image
Andrew Harpin

Electromagnetism, still cooks my noodle to this day

Collapse
 
mohanarpit profile image
Arpit Mohan

People >> Code. Technology is a people problem and not a code problem. Take care of the people, the rest will follow.

Collapse
 
maluzzz profile image
MariLuz

It was very difficult to my start thinking in asynchronous way because I used to sync languages

Collapse
 
lewiskori profile image
Lewis kori

Java. I have tried and tried but that language doesn't stick in my head πŸ˜•

Collapse
 
kip13 profile image
kip

Domain Driven Design and CQRS

Collapse
 
bbarbour profile image
Brian Barbour • Edited

I really want to make my own app, either a game or some sort of service. But, coming up with a good idea is so hard. Maybe I'm too picky.

Collapse
 
henalbrod profile image
Henry Alberto Rodriguez
  • AI
  • TDD
Collapse
 
dpashutskii profile image
Dmitrii Pashutskii

Managing the time, crucial thing for me, but I'm getting there!

Collapse
 
chathula profile image
Chathula Sampath

Maths

Collapse
 
qureshi81 profile image
qureshi81

The recylerview in Android and collections in Java. Had to go through hell lot of time to understand the concept.

Collapse
 
lyavale95 profile image
LyAVALE95

Still causing me headaches: finding the release status of a project. Because it can ALWAYS be better.

Collapse
 
klip_klop profile image
Kacey Gambill

Learning how / when to ask for help.

Collapse
 
clintsoftware profile image
Clint

networks, though html is the most annoying since its made up of so many languages. You can't learn them all.

Collapse
 
tam360 profile image
Mirza

Resolving issues via CLI in Linux....

Collapse
 
jkhaui profile image
Jordy Lee

Recently, it's been RxJS. In hindsight it's not too bad, but it really took weeks of studying it before I felt like I understood the basics

Collapse
 
agorakit profile image
Agorakit

Javascript promise. And I still don't really get it :-)

Collapse
 
felipperegazio profile image
Felippe Regazio

I took a long time to understand OOP, also Promises/Async patterns. it's been a while since then, but i still remember of me thinking: HOWWW, WHYYYY, DAMN WHERE THIS VARIABLE CAME FROM?

haha

Collapse
 
swarupkm profile image
Swarup Kumar Mahapatra

Building true RESTful APIs and recursion

Collapse
 
rogierzeebregts profile image
Rogier Zeebregts

Regular expressions. Still not a big fan!
And (pure) Sql. Thank the big bang there is ORM/Doctrine these days

Collapse
 
kbariotis profile image
Kostas Bariotis

Spanish while leaving in the UK. It's really hard to really grasp something when you don't use it every day. The same goes for every programming language.

Collapse
 
zeljkobekcic profile image
TheRealZeljko

Monads
Gaussian Processes
Work-Life balance
Sarcasm and Irony (still can't get it in a normal conversation)

Collapse
 
ernesto27 profile image
Ernesto Ponce

right now , i'm trying to learn kubernetes .
Althought kubernetes in action book , really helped a lot , i think that i need a lot things to learn and practice

Collapse
 
gayanhewa profile image
Gayan Hewa

Parenting 🀯

Collapse
 
steelwolf180 profile image
Max Ong Zong Bao

State machines, I could never wrap my brain on it even till this day I doubt I am able to solve a problem with it.

Collapse
 
fidelve profile image
FidelVe

Recursion was a hard one for me.

Collapse
 
clarinerd617 profile image
Rolf Henry Goodwin

Transitioning from a scientific research background to software development job.

Collapse
 
elmuerte profile image
Michiel Hendriks

Boolean expressions. When they contain 3 or more variables with and, or, and not it starts to take me exponentially more time to figure out.

Collapse
 
pavelloz profile image
PaweΕ‚ Kowalski

Well, that's true for everbody. the more variables, the more we need to decipher it. that's why we invented computers to do it for us :))

Collapse
 
nestorhernandeza profile image
Nestor Alejandro Hernandez • Edited

Delegating work, I feel bad doing it, but it's a must for your mental health πŸ˜¬πŸ˜…

Collapse
 
raisaugat profile image
Saugat Rai

For me it was Redux and it still is. haha
But now Redux + Saga is kind of challenging. Anyone to simplify the myth behind those two?

Collapse
 
sandordargo profile image
Sandor Dargo

How to quit vim!

Collapse
 
jenc profile image
Jen Chan

The JS execution stack
Step by step problem-solving
All the different kinds of sort

Collapse
 
valentinprgnd profile image
Valentin Prugnaud 🦊

Dynamic programming, still can't wrap my head around this concept!

Collapse
 
goodfellowmunro profile image
John Munro

Legacy code with no tests or documentation

Collapse
 
koehr profile image
Norman

Programming sprites for games on a Commodore 64. But I was 11 years old.

Collapse
 
vonheikemen profile image
Heiker

The concept of functions as first class citizens. In the javascript-land you combine that with closures and you basically have superpowers.

Collapse
 
thedavos profile image
David Vargas

For me, understanding Overpass API was a nightmare at the beginning. But, i didn't give up and i started grasping it after a week 🌞