DEV Community

What are your struggles as a beginner dev?

Cristina Ruth on December 16, 2019

  • What could you use help in?

  • What do you wish you knew?

  • What's the thing you most struggle with?

Collapse
 
imcheesecake profile image
Freddie

My biggest struggle is to start doing something. I get 'blank page syndrome' every time I try to start a new personal project.
I've only been studying programming for around 1,5 years so I know that I'm still fairly new and shouldn't beat myself up but I hate that I still can't figure out how to "just start".

Collapse
 
metalmikester profile image
Michel Renaud

I've been toying with programming since 1984, since 1988 professionally. I still draw a blank when I want to start something new.

Collapse
 
imcheesecake profile image
Freddie

That was actually a big relief to read. It took some of the stress of my shoulders! Thank you!

Collapse
 
cristinaruth profile image
Cristina Ruth

Ah yeah. Have you thought about why that is? Sometimes, it helps to understand the why and you can then address that to help you get started?

Personally, I've started personal projects because I had a problem I couldn't just google a solution for.

A lot of times, I get daunted at the size of potential projects, but I found that it helps to start very small. Like, just get the project created. And add one tiny feature. And if that feature is turning into hours, I break it down into smaller chunks further.

Collapse
 
imcheesecake profile image
Freddie

I think it's because I'm still scared to fail. I've always been a perfectionist and if I fail I just MUST fix it right away, and since I'm still quite new it's hard to find the resources and help that I might need to make something work as I envisioned it from the beginning

I'm trying to do like you do, to break it down into smaller pieces but it's hard as I can only see the big picture :P

Thread Thread
 
cristinaruth profile image
Cristina Ruth

Ah! I struggle with being a perfectionist too!

It's very hard to let go. But it's good that you realize this.

I've learned to cope with this by not saying no, but by saying yes, LATER (and writing this down as an issue in github). Maybe this can help you too? :) Something like...

X is not working right. Research and look into this.

And then add a TODO note in your app.

It really is quite difficult looking into things as you encounter them, especially with new stuff. I struggle with this a lot when I play with new technologies I'm not familiar with. Takes a lot of brain power.

Thread Thread
 
imcheesecake profile image
Freddie

That's actually a really good idea! I've never been able to say no when I start to write some code, but I've never tried yes, LATER approach. I will definitely try this for my upcoming project.
The TODO might also be of help, then I have a "list" of things I WANT to do, but later

I agree with you, since everything is kind of new to me right now it REALLY takes a lot of brain power.

Thank you for great advice!

Thread Thread
 
joelbonetr profile image
JoelBonetR 🥇

And think that you need to set steps to yourself (and your learning curve).
I mean, if you are not a deep professional on something, how do you manage to know if it's perfect, good or bad?

First center yourself on a "If it works, it's perfect" situation, when you are used to this and get more experience, you'll see your own code from 6 months ago and think "what a shit I coded", which is totally natural, specially on the first 3-4 years of coding so you can refactor it to a newer version with your current knowledge.

Collapse
 
joelbonetr profile image
JoelBonetR 🥇 • Edited

Best thing you can do from my experience is to create a repo, then the server folder, then the CI script, then adding a bundler like Parcel.js, create an index.html (or index.js), adding the watch/serve custom script to your package.json file, and writing a quick read me like (yarn install, yarn serve) and so. Then the .gitignore to not push node_modules, IDE files (like .idea from jetbrains or another) and .cache folder.

At this point you should push the package.json and readme.md to your repo and test the pipeline.

You'll need all those steps if you want to create a project from scratch anyway and you'll have the structure ready to begin. At this point is easier to follow next steps like thinking on the shape you want for your project (backend and frontend techs, DB and so).

The easy path to follow is having a cheap hosting which usually runs PHP and MySQL so you only have to concern about frontend.

You can check this article for a full project workaround (where I explain all the steps for a static site, but you can extrapolate it to whatever you want).

If you want or need a tutorial for a full stack project tell me and i'm doing it when I can =D

At this point you'll have too much done to retreat. With experience all those steps could take you only 30min but even then, you'll always see the repo everytime you enter your gitlab, github or whatever, and same for the project directory inside your hosting so it's a nice motivation to keep on!

If you want to do something but don't know why, simply check internet for ideas and build your own version of something you like

Collapse
 
helloejsulit profile image
Ej Sulit 🇵🇭 • Edited

My biggest struggle is knowing what the standards are or what does the majority use when it comes to workflow.

I've never been exposed to a lot of people that has a say on that, mostly I study on my own. So I say that's where I struggle. I don't know if I'm doing the right thing so most of the time I spent my time trying to clarify those things and make myself do right without knowing that I am not achieving anything.

Collapse
 
cristinaruth profile image
Cristina Ruth

It's good that you actually keep these in mind -- these were the last things on my mind when I was a beginner.

I still struggle with this today after 6 years of being on the field. There are various "standards" that apply, ranging in sizes from individual standards to team standards to internal enterprise standards to industry standards. But they aren't black and white and because we have a lot of smart people in the field, there can be debates on which standards are correct.

Have you looked into finding a mentor? A mentor can help at least clarify some standards or guidelines to help you understand more if you're doing the right thing. :)

Collapse
 
helloejsulit profile image
Ej Sulit 🇵🇭

Agreed.

I have not found a mentor though but the one thing I've done that I consider critical for my struggle is by involving myself into these kinds of conversation with people in the industry through slack, buying online courses and engaging with other students.

Not a lot of mentors here that could point me into the right direction, or I guess it's just hard for me to find the proper one from where I came from.

Thread Thread
 
cristinaruth profile image
Cristina Ruth

Sounds like you’re doing all the right things 😊

Thread Thread
 
helloejsulit profile image
Ej Sulit 🇵🇭

I'd like to think so. Thank you for this! I appreciate it.

Collapse
 
ashdev profile image
Ashley Tonkin

I think my biggest struggle as a beginner is knowing what i want to learn. I know most people have a good idea with that they want to build or what field they would like to get into.

I had no idea, I started learning HTML and CSS and i honestly regret not learning a language like C#, Python or Java first.

Collapse
 
metalmikester profile image
Michel Renaud

Those are completely different beasts. HTML/CSS are basically presentation languages, markup stuff. C#, Python and Java are programming languages. Completely different skill sets for completely different tasks (even though some frameworks mix both).

Collapse
 
cristinaruth profile image
Cristina Ruth

Ah yeah - it's hard to know what to learn if you don't know what you'd ultimately like to do.

Why do you regret not learning those languages first? Do you find you're not liking HTML/CSS much?

At least you are starting somewhere and the more technologies you learn, the more you'll be able to grasp which ones you like or do not like, and that can help you find your "end goal" that'll dictate the rest of what you need to learn. 🙂

Collapse
 
ashdev profile image
Ashley Tonkin

I don't use HTML or CSS at all anymore haha
I've moved on to learning Java now plus i haven't used HTML or CSS in about 5 or more years.

Java is where I'd like to be at the moment I think.

Collapse
 
krkd profile image
krkd

Someone pointed out that a significant problem was finding high-quality resources to get into a certain technology stack, or into programming in general. I'd like to agree on that, but for a different reason. I think the overwhelming amount of resources available to beginners poses a problem.

When I first got into technology around fifteen years ago as a teenager, the landscape was relatively barren. You had two or three tech-stacks that you could pursue in learning - you had the world of Java or C#, you had the "modern" scripting languages such as Python or Perl (yes, Perl was still relevant back then, whereas Ruby wasn't) and you had the "grumpy greybeard administrator"-stack of Bash / C.

A non-insignificant part of the resources were available solely in English, and outside a few standard books that "everyone" read, there wasn't a lot of resources available. If you wanted to learn something, there was a semi-defined part that you could walk on, once you stepped outside of that you were pretty much on your own.

Now we kind of have the opposite problem, there's an overwhelming amount of technologies available, all with similarly overwhelming amount of documentation, tutorials, blogposts, messageboards, chatrooms and so on. Finding what's actually any good is a challenge by itself, making it significantly harder to start out, because you have to avoid falling in a perpetuating cycle of acquiring / sharing of dangerous semi-knowledge.


What poses an even bigger problem for me is: Time & discipline.

I'm very much interested in programming as a hobby, and I'm experienced enough as someone working in a pretty much strictly IT-job for the past ten years to be able to skip over some of the basics (learning about what control structures are, understanding how package managers work, and so on) and jump directly into learning the language I'm interested in.

However, I also have an IT-job. And an unfortunate semi-medical need for exercise. Combine that with the other responsibilities that come with having to pretend one is an adult and you'll end up with a very limited amount of spare time.

I'm not going to lie, more often than not I do not possess the mental energy to sit down and try to crack another difficult problem, as rewarding as it might be once I actually solve it. Videogames are much more attractive on these days, which is perfectly fine. But sometimes I catch myself mindlessly watching random videos because I'm too tired to even play a game.

"Happy" isn't the term I'd use to describe how I feel about that situation. I'm hoping that I'm finding some remedies for it that allow me to keep some spare energy left for the evening, so that I can enjoy a (to me) meaningful hobby.

Collapse
 
kimberrleigh profile image
Kim

I'm so with you on the time and energy front. It's not that I don't want to learn or learn something new, I crave it. But I only have so much mental energy by the time I get to free time and only so much time to sit down and focus enough to basically be self taught. And if I wanted to go the instructor led type course route like GA, making finances work even with tuition reimbursement (reimbursement is the key... gotta pay up front!) is hard with a family and house and loans and such.

Collapse
 
cristinaruth profile image
Cristina Ruth

Totally get you. I have the same struggle as you outside of work and family, if I want to learn a new technology, it's so hard to peruse through the loads of resources out there. And it quickly becomes overwhelming. So like you, I end up watching mentally easy videos/shows to just let my brain rest. 😖

I think back then, like you said, we had a low amount of resources for learning. Today, in the information age, we have way too many. How can we dial back to just right? 🤔

Collapse
 
renanlazarotto profile image
Renan "Firehawk" Lazarotto

Well, I've worked so far as a fullstack developer (even though I was far from 'full') and now I'm working as a backend developer, but my biggest struggle right now is JavaScript. Logically speaking, there's nothing hard about it, I just can't figure out a nice way to write an app! There are so many choices that I feel lost. All I wanted to do was write JS code almost like I write PHP code, but since one can literally write JS anywhere on the page, it gets confusing.

I need a starting point, something that can lead me along the way.

Collapse
 
cristinaruth profile image
Cristina Ruth

Tough indeed. A lot of the other replies indicated the huge amount of choices like you said and ends up overwhelming and confusing. 😕

The best solution I can think of is to connect to mentors for personalized and quicker learning without being overwhelmed but not a lot of people want to mentor and there's also usually a time constraint involved.

Collapse
 
renanlazarotto profile image
Renan "Firehawk" Lazarotto

Mentoring would be awesome! Thankfully, I work with wonderful people that are always there if you need any help. I checked out with them about which technologies they would recommend me to look at and, since and because we work with Magento, I'm focusing on what Magento uses.

I've seen that in the future Magento might use React, and even if it doesn't end up using it, React seems a very nice starting point. What do you think? I've tried Angular before but I gave up because it has a steep learning curve.

Thread Thread
 
cristinaruth profile image
Cristina Ruth

I'm not familiar with Magento unfortunately. But I am familiar with React and personally, I found it easy to pick up. It's always worth a shot to try it - what have you got to lose? 🙂

Thread Thread
 
renanlazarotto profile image
Renan "Firehawk" Lazarotto

Indeed, I got nothing to lose! I'll take a deeper look into React then. I guess I can just try it for a while, see if I feel comfortable with it and, in case it doesn't work out well, I've still learned something.

Thank you!

Collapse
 
metalmikester profile image
Michel Renaud

Just reading the comments here... I've been working (mostly) as a developer for over 31 years and today I still share some of the same struggles as those mentioned in the comments.

How's that for a Monday morning? :D

Nowadays I find that I waste way too much time fighting with the tooling. Whether it's an editor, IDE, framework, deployment platform, whatever.

Collapse
 
delta456 profile image
Swastik Baranwal

I think my biggest struggle was finding good books and resources to read, learn and code from as there are many less that are really informative and more examples which explain everything well and also latest feature which are introduced.

Collapse
 
cristinaruth profile image
Cristina Ruth

I struggle with this too because there are just sooo many resources out there now and it's so hard to peruse between them and find the one that fits you.

I personally use pluralsight (perk through my work) to learn about new things and follow through their exercises, and then create a play with it project where I try and apply the stuff I've learned and add some small features to it (e.g. TODO app).

As for latest features, I've found it best to read from the source, but it usually is daunting because it's a bunch of text.

Collapse
 
dustin_preick profile image
Dustin Preick

My biggest struggle as a Frontend-dev is the hassle setting up all the backend stuff.
Of Course, there are plenty tutorials on doing things with create-react-app, or the whole redux stuff. But I don't want to host my projects on some "free" services and/or can't afford (afaik) a node.js webserver. So in order to utilize React I would have to take the route via gatsby plus wordpress and if I want to add some neat GraphQL I have to put in some additional PHP plugins. All that adds so many layers of complexity that building a "real world application" which I could use for real-life projects of mine seems impossible.

Collapse
 
cristinaruth profile image
Cristina Ruth • Edited

Oh man. Yes! I abhor the complexity as well, given the little free time I have outside of work and family.

But you can get a node.js React app hosted on a free service that's decent like Netlify without the complexity you're talking about. Is that something you've looked into and just didn't like/didn't work out for you?

Collapse
 
dustin_preick profile image
Dustin Preick

I never considered netlify but have taken a look into it. It seems promising for some testing at least. Thank you!
I still will have to set up the whole php backend-shizzle because I have to host the project on some servers of our university and need other people be able to manage the content...

Thread Thread
 
cristinaruth profile image
Cristina Ruth

Ah I didn't realize you were talking about non-personal site setup. Yeah, backend setup definitely has to happen. 😖

Collapse
 
a_m_h_gad profile image
Jad

As a beginner i always struggle with the idea "am i good enough to get work or to apply for a job, i always feel there something to learn and something i miss ...

Collapse
 
severon96 profile image
Dominik Mack

I have really problems in teaching myself.
For example: I'm currently trying to learn Swift and SwiftUI and I really have problems to get into it.

Also i've problems to find my way in existing projects which already have a big codebase.

Collapse
 
cristinaruth profile image
Cristina Ruth

What kind of problems do you encounter getting into Swift and SwiftUI?

To this day (6 years experience), I still struggle finding my way in large codebases. It never goes away! It helps having somebody else walk you through it, or reading documentation on what the structure is so you know where the stuff is.

I compare this to visiting a city I've never been in and I don't know where the shops are at, or where the "suburbs" are at, and I need either a map/google maps/a person to guide me and let me know how to get around. But as long as you know how to learn to get around, then you'll find it easier to navigate large codebases in the future :)

Collapse
 
cartinez profile image
F.

There is just too much stuff. I know basic JS/PHP/C++ and as soon as I get interested in some framework or project I get hit by a train of information that I don't know how to process.
Like, I've recently started looking into Angular and even in a blank project there is just too much stuff. I also find my JS knowledge useless in these cases.
On back-end tech instead I have no idea what to do with the tools I know. I feel like today's standards moved way more on front-end then back-end, so I kinda feel lost on the usefulness of languages like PHP or C++ on small beginner projects.

Collapse
 
cristinaruth profile image
Cristina Ruth

Too much stuff indeed! Too much documentation / blog posts to read through and too many integration points (plug-ins and more blog posts and more documentation) if you want to customize the stuff you're building. 😕

Collapse
 
qew7 profile image
Maxim Veysgeym

Finding out about best practices and magic stuff

Sometimes theres just plain vanilla examples in documentation or git readme of some libs, and you use them as described, but then you stuck on more expirienced user of same lib, and he uses it absolutely differently yet more elegantly and prettier, and im like, how did he even thought about using it liek that?

It would've been much better if default documents or readme had some kind of best practices section or at least link to such things

Collapse
 
cristinaruth profile image
Cristina Ruth

Very good point! This topic may make an interesting blog post. 🤔

Collapse
 
jonyive10 profile image
jonyive10

The thing I struggle with the most is, i have been studying JavaScript for quite some time now, and I still feel like I don't know anything to build my own apps.

Collapse
 
saint4eva profile image
saint4eva

Indecision. I started learning any available technology,until I decided to settle with C#/.NET stack. So having someone to guide a newbie on what stack to choose is very important.

Collapse
 
cheahengsoon profile image
Eng Soon Cheah

I only Struggle when the technologies that only you know how to do it in the office.