Skip to content
Cover image for What was the hardest concept you had to wrap your head around?

What was the hardest concept you had to wrap your head around?

cilvako profile image Silvia Bogdan twitter logo ・1 min read  

Looking back it sounds silly but I had the hardest time understanding for each loops in Javascript. Mostly because the tutorials I found were't explaining the parameters (value, index, array) of the call back function very well but also because I wasn't very comfortable with callback functions.

What was you Kriptonite while learning how to code?

Source image: Kelly Sikkema/ @kellysikkema

twitter logo DISCUSS (51)
markdown guide


I know it's powerful.


Why did they choose the alien (or cat) language? I don't know.



Regex is one of those things I will never know by heart. I read about it whenever I need it, I understand it and I forget how it works immediately after I use it. And the cycle continues :).


But doesn't it feel awesome, once you constructed a working regex pattern for one special use case? One were you even started to understand "positive/negative lookbehind/ahead" and that stuff? Sure, once it's working that knowledge is gone... unless you write this cat language every day :D

"Cat language". I like that. And yes, I agree, RegEx is like array methods in Javascript, you think you know it but you always need to Google it :D.

Yes, especially when you search "splice" without "array" or "mdn", the result is quite disgusting.


"Complex" boolean expressions with multiple variables, especially if it contains various not operators.

result = !(a && !b || c)

I always have to spell or write those out to understand when result is true. I always find it best to refactor those things out of a function, into their own. And generally to avoid using double negatives.


Haha, this made me giggle. I didn't start doing front-end as a job for a long time so to this day I put these expressions on paper (whether I need to write them or I need to understand already written code).


VSAM concepts. I worked as a mainframe developer in my first job and I went through a lot of pain trying to learn the basic operations on VSAM using COBOL. It'S been 6 years since I quit my job as a mainframe programmer and I don't have any memory of VSAM anymore (except that I struggled a lot :-D).

Nice to see a fellow Berliner here. Which part do you live in?


Gotta free that memory so it's good you forgot everything about it :D. I live on the East side - Friedrichshain. Thx for your input.


Coolio! I'm from Schöneberg. (:
Nice posts, BTW. Keep 'em coming.


I'm learning Crystal. So, coming from JavaScript and Python it has been difficult to write code with the limitations that had a typed language. Everytime I will write Crystal code I must think the solution with types in mind.

It is the same with Typescript

I'm still struggling a bit with types D:


I started learning/ using Typescript just 4 months ago and it surely is something else (I still struggle, especially with generics). I don't know anything about Crystal, how do you specify types, just like in Typescript? And how do you go about, you make a plan (which includes the types) and after write the code, or just code and come up with the types on the fly?


Odd as it sounds, avoiding premature optimization was my biggest issue when coding. I have a natural tendency to always try for the most performant solution at the expense of readability/maintainability without considering what really is 'good enough'. It's not even just been an issue coding, but with any kind of design or engineering thing, I have the same tendency to optimize long before I should and far more than I should.

Other things that come to mind that I thought were difficult to wrap my head around at the time but now look back on as not being that hard include:

  • Using the command line.
  • 0 indexing of arrays (and lack thereof in languages that are obtuse and don't zero-index their arrays).
  • JSON's super picky syntax rules (it still ticks me off to not be able to use single quotes or trailing commas).
  • Low-level networking.
  • Pointers.
  • Immutability.
  • Assembly language (x86 still is hard IMO, but I have no issues with most RISC ISA's).

Did you use to have the premature optimization "issues" even as a junior? I'm still at that that point whee first I make the code work and maybe at the end I try to refactor it, but I can't really code with optimization in mind. I guess it's an experience thing? And I fell the pain of all the other points except for the last one, cos' I never used assembly language.


Actually, yes, I had the same issue even when starting out. I was a bit of an odd case at that point though because I already knew a lot more about the low level operation of computer hardware and the mathematics underpinning theoretical computer science than a vast majority of new developers do.

Well, this is a problem which I can never say I will have :). I envy you, refactoring is still the last step in my coding process and I can only hope it will change with time. Thank you for your input.


2 things that get me are:

  • Using functions as first class citizens, returning functions from functions etc
  • When I should curry something (both coding and fridge contents)!

:)) currying, this is a term I didn't see used in a long time. I actually had to go read about it again, and as expected, I still don't understand it 100%.


I had a hard time understanding and implementing a SOAP service once.
And another very hard time to wrap my head around google firebase authentication and storage without using their libraries...


I see you struggled with some really complicated things while I was there like "Hi, I'm Silvia and I can't understand for each loops".


Everybody has to start somewhere, and everybody has their own unique strengths and weaknesses.

One thing you'll definitely learn as you code is that no matter how difficult some thing you've learned seemed at the time, there's always something out there that will challenge you more.

Hopefully we'll never run out of things to learn :). Thank you for your input.


I had a hard time understanding and implementing a SOAP service once.

The 'S' in SOAP standards for Simple.
But you had a hard time? Which means you no longer have to deal with SOAP, right?


I had to consume a SOAP Service to book train tickets, while retrieving data was relatively easy, posting data was weird. It took a while until I understood the whole concept (I didn't write those xml messages myself, but used the php soap client) , and the data structure was very complex, it was hard to focus. At the end it helped me to understand and appreciate REST much more :). And no SOAP anymore, only for washing my hands. :)

  • SQL in general
  • profiling
  • Most of DevOps stuff, such as Kubernetes, Load Balancing...

SQL is very tricky in the beginning, especially if the only data-bases you used until then are shopping lists :). Thank you for the input.


Problems with database in general, actually

  • Relationships and Foreign key constraints
  • Maintenance, updating, altering tables / columns, migrations and changing schemas.
  • Triggers. SQL-native, but not the-other-side-native programming.

I recently had a look at SQL/ MySQL and I really liked the basics. I'm sure if I would go deeper I would also struggle a lot. Any tips that might ease the learning process?


The funny thing is I actually understood them in PHP before I did it in Javascript :).


but it is still a Scooby Doo mystery for me🤣🤣🤣🤣

Then maybe I should write a post about it :)?

nothing is better then writing a post if so dont forget to mention mr👻


According to Phil Karlton they are cache invalidation and naming things.


No idea what cache invalidation is but I do struggle with naming things :).


RegEx is a true pain point in this thread :). Oh, an recursive functions... only reading the definition gives me a headache. Did you manage to get them in the end?


Yes! Oddly (or not so oddly) enough, when they sporadically presented themselves in my mind as the logical solution to a problem. It was the aha! moment we so often experience... :)


It's always a good idea to go to mozilla docs on any js topic than other tutorials


True, I think MDN combined with video tutorials (I learn better from seeing rather than reading) it's the perfect combination (for me at least).


I got spooky feeling everytime I touch RegEx. Same?


Who doesn't :)? I see many people mention RegEx, so it must be something. Maybe we need a poll :D.


Thank you for the "Protobuf". I didn't even know about its existence :).


Containers! I couldn't understand what lightweight VM even meant! Didn't really feel comfortable with it till I saw a talk about how to make a Container from scratch in Golang.


Containers and virtual machines are way out of my league :D. I'm sure they're hard to understand.


JavaScript closures: they took me so long. I remember writing my first chat room and being like, WTH is going on?

XSLT: I always rejected the whole thing. Glad I did too!


Ooo, hello closure my old friend :). At this point I just think I'm using them without even realizing it, cos' I don't remember if I ever understood them 100%.

Classic DEV Post from Jul 27 '19

If You Don't Know, Now You Know - GitHub Is Restricting Access For Users From Iran And A Few Other Embargoed Countries

Please help our cause against modern-day discrimination

Silvia Bogdan profile image
Front-end developer by day, front-end developer by night. My dog is my biggest supporter.