DEV Community

What is the hardest thing about learning to code?

Emma Bostian ✨ on December 21, 2018

The thing I struggle with most is staying up-to-date. It's hard to code from 9-5 and come home at night and continue to learn. It's important to maintain a healthy work-life balance, and I still struggle with this. What is the hardest thing you've experienced on your coding journey?

Collapse
 
ickas profile image
Henrique Macedo

Usually they (bosses) think not, but learning constantly is part of the job and should to be done in working hours, precisely to have this work-life balance.

Collapse
 
akashkava profile image
Akash Kava

My problem is opposite, my employees don’t spend time to learn anything and they always come with execuse as they had so much to code!! I constantly remind that 80% learning and 20% coding will yield better results then 1% learning and 99% coding.

Collapse
 
andywynyard profile image
Andrew Wynyard

Just changing jobs now and this is one of my parting words to my last boss. I recommended 80% is the max anyone should be specifically on work, then 20% learning, essentially every Friday should be devoted to upskilling and presenting what you learned. Code reviews (on pull requests) should be super standard and if your not doing this, seriously make a change.

Collapse
 
sandordargo profile image
Sandor Dargo

Try organizing them knowledge sharing sessions. Do it in working hours, so you actually show it that's important for you that they learn.

You can also try organizing coding dojos.

Buy them books, or online library subscription.

Thread Thread
 
akashkava profile image
Akash Kava

You think I haven’t tried all this? It’s just their habit which is very difficult to change as they grow older.

Thread Thread
 
sandordargo profile image
Sandor Dargo

When you say "my team", do you mean you manage them or you are their teammate?

Thread Thread
 
akashkava profile image
Akash Kava

I said, 'my employees', so I am not directly managing teams, but yes, in a way, I do manage.

Collapse
 
ickas profile image
Henrique Macedo

This is super strange, unusual 🤔 They develop a good code? Not a deprecated code? You always can offer some conference/workshop tickets, it's a great way to do a pause on development and have a good time to learn.

Thread Thread
 
akashkava profile image
Akash Kava

Learning has to be everyday, I can't send them to conference/workshop everyday !! Also if they don't know how to learn by themselves, they will not do anything on conference/workshop.

Thread Thread
 
clamstew profile image
Clay Stewart

Try starting a Friday lunch and learn. Then it’s one dev presenting learning each week.

Thread Thread
 
clamstew profile image
Clay Stewart

Also code reviews are great opportunities for knowledge sharing.

Thread Thread
 
ickas profile image
Henrique Macedo

Akash, I think if they don't want to learn anything new, sooner or later you'll have to replace them with someone who is more competent and with more skills.

Thread Thread
 
akashkava profile image
Akash Kava

Only if reviewer is smart, otherwise all code is great!!

 
akashkava profile image
Akash Kava

Yes that’s correct.

Collapse
 
phallstrom profile image
Philip Hallstrom

A thousand times this!

Collapse
 
liana profile image
Liana Felt (she/her)

Knowing what you don't need to know.

You hear a word or concept, it's hard to know if it's okay that you don't know the thing.

Collapse
 
eduardllach profile image
Eduard Llach

Humility.
Once you arrived a certain grade of knowledge, is very easy to think that you know "a lot" and you can't be wrong.

I've worked with people that is never wrong, if there's an error is because somebody touched their code and that their algorithm is perfect and covers all the cases...

Collapse
 
jessekphillips profile image
Jesse Phillips

I think their is also humidity needed when you know you don't know everything and pros and cons exist for everything. Being surrounded by those requesting less then optimal use of time or seeking 'the' pattern still requires te right level of humble response.

Collapse
 
andywynyard profile image
Andrew Wynyard

I’ve met a whole bunch of people who are insanely arrogant about what they know, and if you don’t know as much (less experience) then they hold it over others. Insanely counterproductive, and never leads to helping people develop. I’ve found this in the likes of Java/.net, but much less in JS stacks or anything open source.

Collapse
 
ben profile image
Ben Halpern

The concept of scale is hard with programming. How big is big?

A database with 100 million records may be nothing in terms of scale, but a loop of 100 things could make a web request timeout if the loop is inefficient.

Collapse
 
michaeltharrington profile image
Michael Tharrington

For me, it's just hard to get started period. I've got a ras pi that's been collecting dust in my closet for ummm 2 years now... wow, embarrassing.

Anyway, it feels like there's so many different possible ways to go and mountains of beginner tutorials available. I just need to get disciplined and dive in.

I totally can relate to wanting to chill or even just wind down after a 9-5. Lots of other things come calling: gym, cooking, music, time with my significant other... and of course, the cats! I know if I just stop making excuses, set aside time each night, and get in a rhythm, it'll pay off.

Gotta overcome that procrastination! 😅

Collapse
 
emmabostian profile image
Emma Bostian ✨

I totally empathize with this. Finding the motivation to start is hard.

Collapse
 
jessekphillips profile image
Jesse Phillips

The number of in progress projects is impressive. But I don't think that is unique to programming hobbies.

Collapse
 
steelwolf180 profile image
Max Ong Zong Bao

Your not alone cause I have the problem of doing my side projects while finding time in writing my blog. I think scheduling time can help slightly to get started.

Collapse
 
molly profile image
Molly Struve (she/her)

I could not agree more! I ride horses competitively and often when I am not working, I am riding so it's hard to squeeze in time for side projects, blogs, etc. I always feel behind when my other coworkers talk about the latest new language that I have never heard of. Recently though, I am starting to realize it is OK to not know about every new thing. There is no possible way anyone could!

Collapse
 
emmabostian profile image
Emma Bostian ✨

I totally feel you! I try to juggle learning German, reading, cooking, cleaning, and managing a thousand side projects :) I need to plan my life better!

Collapse
 
buinauskas profile image
Evaldas Buinauskas

Learning that "someone else's bad (or even terrible) code" isn't always so because someone was lazy or didn't care enough. There could many reasons why it's so, terrible and daily changing requirements, very tight deadlines, constant pressure, sheer amount of other work that has to be done.

Also, finishing side projects, heck. Even starting them.

Collapse
 
theoriginalbpc profile image
Sarah Dye

The hardest thing I've experienced on my coding journey is managing time spent coding, staying up to date with what is happening tech, and finding a tech job. I also have been struggling with impostor syndrome and people trying to pressure me to quit coding. I often had to rely on the tech communities I participate in even more this year due to all the negativity I have been receiving.

Collapse
 
emmabostian profile image
Emma Bostian ✨

Don't ever quit! I was horrible for the first few years in dev... I had no idea the community existed. Keep going!

Collapse
 
theoriginalbpc profile image
Sarah Dye

No worries! I'm not planning on quitting anytime soon. It has just been harder dealing with the negative people telling me to give up coding and how coding is not going to help me get a job this year. Thankfully the coding communities have been awesome and have been the best support system throughout my coding journey. I'll definitely keep using them as I keep coding.

Collapse
 
andy profile image
Andy Zhao (he/him)

Oof, definitely agree with that. I've been at my first programming job for a year and a half now, and while I have ideas for side projects that I'm genuinely interested in, I find it really hard to build up the energy/motivation to start them. I'm usually spent by the time I get home, and almost always want to do other things.

I think what you're saying is hardest thing for me, too, but a close second for me is figuring out when a solution is good enough. Often times I'll write a solution and then rewrite it over and over again, until it becomes overengineered. Then I'll rewrite it again, and push a final solution that's simpler and probably works well enough. Knowing that someone is going to review your code helps with this, but I constantly need to remind myself of "Perfect is the enemy of good."

Collapse
 
emmabostian profile image
Emma Bostian ✨

Totally agree! Usually I find that by watching other people code (i.e. tutorials) I gain motivation!

Collapse
 
mvasigh profile image
Mehdi Vasigh

So far I think one of mine is knowing when to be okay with messy, "bad" code. Ideally the answer would be never, but I'm having to learn on the job that often resources are limited and you have to make compromises. The part I struggle with the most is knowing where to make those compromises to limit the severity with which you get stung later when you have to revisit the code.

Collapse
 
lauragift21 profile image
Gift Egwuenu

Yes. This is also a huge part of my struggle. Staying up to date with the latest tech while still working full time is a lot of work. And also accepting the fact that as developers we can't always know everything.

Collapse
 
everton profile image
Everton Agner

I always try to stick with jobs that force me to learn new things and keep improving, so I don't have to be so hard on myself in my spare time. It's when I feel stuck at work that I spend more spare time on sharpening up my skills or learning something new.

Collapse
 
justinenz profile image
Justin

I also have a hard time trying to code or learn something coding related at home after a day of coding at work.

I also do better in a classroom or lab environment because of the guidance it provides when very green on something. At home on my own it's hard to replicate that type of learning environment.

Collapse
 
emmabostian profile image
Emma Bostian ✨

Yes! Accountability is a huge motivator!

Collapse
 
zopeff profile image
Craig Schumann

For me, the hardest thing to learn about coding is that coding is the easy part. Learning to not get myopic, working with others, understanding what to build in the first place, searching for value, practicing, and so much more. These are the real hard parts about coding. It's often very easy to lose sight about why we are coding and get too caught up in the how or what. I am always trying to remind myself not to confuse the means for the end.

Collapse
 
bradtaniguchi profile image
Brad

I find the hardest part is finding time to learn. There is just not enough time to do enough learning, and even if there was more time in the day to learn, there's still always more and more to learn.

It all comes down to time.

Collapse
 
jonaskuske profile image
Jonas

For me: staying focused on one thing.

There's just so much awesome stuff to learn, different frameworks, slick animations, 3D graphics, tooling and lots more, so it's reaaaaaally tempting to start messing with the next best thing while you're still not 100% comfortable with the last thing you started learning. 😅

Collapse
 
emmabostian profile image
Emma Bostian ✨

I have this problem :D

Collapse
 
jvarness profile image
Jake Varness

I struggle with having a goal. If I don't have a goal in mind, I have a really hard time trying to learn anything because it's fun up to a point and then I'm like "Ok now what?".

Academic projects are always great because there is an intended goal or learning path. When you're on your own, it's a little trickier.

Collapse
 
iankurbiswas profile image
Ankur Biswas

I think for me the most difficult thing in programming is not being able to see the big picture.

For example, if I have to fix some issues I just quickly fix the current issue in hand. It worked for sometime and sometimes the fix is causing another issue in some other module or it's not effective as it has to be. So I have to rewrite same fixes again and again.

I'm trying to fix this so that I don't have to came back to fixing the same issue over and over again. 😁

Collapse
 
ferricoxide profile image
Thomas H Jones II

Switching languages when under a time-crunch ...particularly if there's one language you know inside-and-out. While learning the syntaxes of other languages is generally trivial (especially if you know at least one other language inside-and-out), the initial forays into that new language will positively reek of the programmer's "home" language.

To be honest, "language" is a great term for what's used to program in, since, like spoken languages, you will tend to have an "accent" in your non-native. language.

Collapse
 
therealdanvega profile image
Dan Vega

First off you need to know that everyone from newbies to developers with 20+ years of experience has the same problem you're facing. The first thing you can start with is learning on the job. Try to find time at work to keep your skills up to date. Sometimes employers have a fixed number of $ they can allocate to training and conferences. You can also find ways to introduce technology that you want to learn about into new or existing projects.

My only other advice is to maintain a healthy work-life balance that you're looking for. Learn when you can but there is always going to be something new you might want to learn. The better balance you have in life, the easier it will be to want to learn something without feeling the need to. Good luck in your journey and with that ill leave you with one of my favorite quote of all time.

"Live as if you were to die tomorrow. Learn as if you were to live forever." - Mahatma Gandhi

Collapse
 
marjeanm profile image
marjeanm

I am a super newbie, I am just understand and grasping Javascript. just able to code in css and understand the positioning and padding ect.
I am currently stuck with everything has to be perfect, and I haven't gotten anywhere near finished with my initial portfolio. My imposter symptom is at a all time high.i spend maybe 8 hours after work daily for 5 days coding and reading and digging. I leave two days away from it.

Collapse
 
khrome83 profile image
Zane Milakovic

That. I agree with everything you said.

I found context helps a lot. Each library, framework, language I learn makes it easier to learn the next when I need too.

So I listen to a lot of podcasts and reach about other tech. Then when I need that for a solution, it’s available. The other part was focusing on the core language itself. Knowing React for example is fine, but it’s better to know JavaScript.

Collapse
 
jackharner profile image
Jack Harner 🚀

For me, It's definitely figuring out what to focus on, and trying to learn too many things at once.

I could use React to build a project, but I could also do it in PHP and get a finished product a lot quicker, but then I keep pushing off learning React.

Collapse
 
akashkava profile image
Akash Kava • Edited

Talk to your boss and tell them you need access to internet and tutorial websites or videos. If your boss is blocking internet for your productivity. You must convince him to give access to learning material as you don’t have time and internet at home is too slow to give you access. I am sure no boss in his right mind will deny such request.

God has made our body in away that the moment you stop using something it becomes weaker. They way we need to exercise to be healthy, even brain needs new things to learn to be healthy. Often old people start forgetting things just because they stop learning any new things.

Collapse
 
joshjconlin profile image
joshjconlin

Hands down dealing with timezones. Worst problem in programming imo

Collapse
 
theliquidcharcoal profile image
The Liquid Charcoal

So far there is no hard thing if you make up your mind and minimize your need. However, I understand your concern as I was there in those shoes at some point of time but I could overcome by preparing a proper time-table. Although, the hardest thing was sticking up to the timetable strictly. Give it a try... It might be hard at first but you'll be fine.

Collapse
 
zenel_bobi profile image
Zenel Bobi

For me the hardest thing about learning a programming technology is to figure out the best way to learn it

Collapse
 
msamgan profile image
Mohammed Samgan Khan

according to me is not hard to learn, its harder to forget the old practices and keep them using them when even they are not wanted just because you are fond of having a thing in a certain way. That's more hard for me at least.

Collapse
 
mauromattos00 profile image
Mauro Mattos

Focusing on one thing at a time.

Collapse
 
raypaseur profile image
Ray Paseur

Dealing with collaboration tools. Jira makes me the saddest because sometimes my colleagues think Jira can take the place of conversation, eye contact, and shared ideals.

Collapse
 
emmabostian profile image
Emma Bostian ✨

Yes I totally understand. Good documentation is key but not the be-all-end-all!

Collapse
 
jonrandy profile image
Jon Randy 🎖️ • Edited

Staying "up to date" is largely pointless since everything moves so fast and the latest 'hot' trend is not necessarily all that great, or the right fit for every project. Every new fad and framework is simply a (possibly) new application of the underlying fundamentals. Learn those and be confident with them, and new stuff that comes along really won't be all that hard. I would suggest doing stuff like coming up with your own framework, and building stuff totally from scratch... this will teach you a lot

Collapse
 
qalg profile image
testerlg

That the "code under development" has to be tested and that requires a different mindset, "Hat".
I enjoy both and someone else should always test my code after I've tested it. Getting code to execute and finding code that breaks result in different "Ahas!" :-) Happy Cod(Test)ing.

Collapse
 
prashumishra profile image
prashuMishra

Almost Every developer has the same kind of problem after few years of development,
So it is not possible to be master in any language even its you native language but every language has same kind of blue print.. so we can relate new technology with exiting one 75% problem will get clear

Collapse
 
solkimicreb profile image
Miklos Bertalan

I struggle the most with seeing edge cases ahead and making compromises.

Learning a language is a piece of cake, learning how to express something without a single tiny unspecified hole is a different story.

If you really code for all edge cases you likely got into situations where nothing fits perfectly. I used to either think about the mythical perfect third solution for days or silently ignore the edge case. It is hard to weigh the cons and pros, make a reasonable and quick compromise, and feel good about it later.

Collapse
 
marcode_ely profile image
Marcos Aguilera Ely • Edited

Keep learning 2019 technologies like React.js, Native, Flutter.io and GraphQL, finally the want what they want, even ignoring the modern techs advices, they want Filemaker, Access, Wordpress...

It's make me feel unused-professional.

Collapse
 
codercatdev profile image
Alex Patterson

Being able to get a good depth of knowledge in a topic, while still having the ability to learn outside that topic. Typically people will call this T shaped skills.
innolution.com/resources/glossary/...

Collapse
 
lauragyre profile image
Laura Gyre

For me so far it’s being hyper aware of all the things I don’t know yet. I’m just learning, but there are some specific challenges ahead that I’m afraid of. And logically I think I’ll be able to learn these things one piece at a time, but until I’ve done that they’re making me pretty nervous. I’m also guessing that there are more of them...that once I check off the things on my current list, I’ll be able to see bigger, scarier things further down the road. I’m just hoping that my feeling of confidence will grow faster than the challenges.

Collapse
 
leoat12 profile image
Leonardo Teteo

Yes, staying up-to-date is generally the hardest thing to do, there are too many things coming up and you don't have time for everything, principally when you are a curious mind.

Collapse
 
dsoundzz profile image
Demian Sims

Understanding the way I learn. Having some kind of learning disability and some depression, I had to work WITH and not AGAINST the way I take in knowledge.

Collapse
 
andywynyard profile image
Andrew Wynyard

I have huge issues with nuances across technologies. Leads to super simple mistakes, and it’s quite.... frustrating....

Collapse
 
bgadrian profile image
Adrian B.G.

To accept that the code is less than 10% of the project (as a business solution). To make it work in production and the marketing make the rest of 90%

Collapse
 
nhh profile image
Niklas

Accepting imperfection. Deadlines. Estimations. Learning is not always fun, but mostly.

Collapse
 
pavelloz profile image
Paweł Kowalski • Edited

svg viewport attribute ;)

Still cant understand it fully.

Collapse
 
bubodev profile image
buboDev

I´d say the hardest part are the first steps, learning how to link real world problems (or objects) to programmatic solutions. Or that's the impresion I get from observing my students...