loading...
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?

ari_o profile image Arika O ใƒป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

Discussion

pic
Editor guide
Collapse
pulakchakraborty profile image
Pulak Chakraborty

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?

Collapse
ari_o profile image
Arika O Author

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.

Collapse
pulakchakraborty profile image
Pulak Chakraborty

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

Thread Thread
ari_o profile image
Arika O Author

Thank you. Enjoy the city :).

Collapse
elmuerte profile image
Michiel Hendriks

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

Collapse
ari_o profile image
Arika O Author

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

Collapse
wilsontov profile image
Wilson Tovar

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:

Collapse
ari_o profile image
Arika O Author

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?

Collapse
miketalbot profile image
Mike Talbot

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)!
Collapse
ari_o profile image
Arika O Author

:)) 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%.

Collapse
ahferroin7 profile image
Austin S. Hemmelgarn

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).
Collapse
ari_o profile image
Arika O Author

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.

Collapse
ahferroin7 profile image
Austin S. Hemmelgarn

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.

Thread Thread
ari_o profile image
Arika O Author

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.

Collapse
marcusatlocalhost profile image
Marcus

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

Collapse
ari_o profile image
Arika O Author

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

Collapse
ahferroin7 profile image
Austin S. Hemmelgarn

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.

Thread Thread
ari_o profile image
Arika O Author

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

Collapse
elmuerte profile image
Michiel Hendriks

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?

Collapse
marcusatlocalhost profile image
Marcus

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. :)

Collapse
patarapolw profile image
Pacharapol Withayasakpunt
  • SQL in general
  • profiling
  • Most of DevOps stuff, such as Kubernetes, Load Balancing...
Collapse
ari_o profile image
Arika O Author

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.

Collapse
patarapolw profile image
Pacharapol Withayasakpunt

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.
Thread Thread
ari_o profile image
Arika O Author

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?

Collapse
madza profile image
Madza

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

Collapse
ari_o profile image
Arika O Author

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

Collapse
netk profile image
David Quintero ๐Ÿ“ฟ

Recursive functions. And let's admit it: RegEx

Collapse
ari_o profile image
Arika O Author

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?

Collapse
netk profile image
David Quintero ๐Ÿ“ฟ

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... :)

Collapse
saswatamcode profile image
Saswata Mukherjee

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.

Collapse
ari_o profile image
Arika O Author

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

Collapse
mdxprograms profile image
Josh Waller
  1. Protobuf
  2. partial application
Collapse
ari_o profile image
Arika O Author

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

Collapse
mikaelgramont profile image
Mikael Gramont

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!

Collapse
ari_o profile image
Arika O Author

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

Collapse
akshay090 profile image
Akshay090

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

Collapse
ari_o profile image
Arika O Author

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

Collapse
davidyaonz profile image
David Yao

I got spooky feeling everytime I touch RegEx. Same?

Collapse
ari_o profile image
Arika O Author

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

ari_o profile image
Arika O Author

I shall do that, stay tuned :).

Collapse
jdhenckel profile image
jdhenckel

My kryptonite is git.

xkcd

Collapse
ari_o profile image
Arika O Author

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

Collapse
ari_o profile image
Arika O Author

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 :).

Collapse
marcusatlocalhost profile image
Marcus

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

Thread Thread
ari_o profile image
Arika O Author

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

ari_o profile image
Arika O Author

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