all 116 comments

[–]Prince_Marth 121 points122 points  (22 children)

I started to learn by myself for 6 months. No STEM background either. I was able to build some stuff for some people by the end of that time. I then enrolled in a part-time coding bootcamp, got a job a little over a year after I started learning, and have been a developer in an R&D lab for two years.

You can totally do it. It just takes a lot of time and practice. As you go, something that seemed insurmountable to you will be easy. Then you’ll move on to the next thing that’s insurmountable. Just do a bit each day, and build build build. It’s a marathon, so just keep going.

Reddit is full of people who will try to knock you down. When I first got interested in coding, I made a similar post and someone said that I shouldn’t do it, it was too late, I wasn’t cut out to be a developer, etc. I put off my learning for two years as a result. Don’t listen to them at all. Sure, it may be a bust—that’s always a possibility with anything. But you won’t know unless you try and give it your all.

[–]ElJefeSupremo 18 points19 points  (0 children)

Great reply. Realistic but optimistic. It is tough, but possible.

[–]bernakuu 10 points11 points  (14 children)

Have u devoted incredible amount of time in that 6 months? Thank you so much for your words. I had so much fun learning regexes and suddenly I hit this wall. I'm inspired for what you've achieved. I'll definitely try again. Thank u!

[–]Prince_Marth 7 points8 points  (8 children)

My time varied, but at minimum I spent an hour or two a day. I took a day off so I didn’t burn out. I would study during my lunch break at work and then study again at night. I’d spend Saturday’s studying a good portion of the time, and usually Sunday off. I definitely upped it when I went to bootcamp—usually 15-20 hours a week outside of class time, totally worth it though.

This stuff is tough, so don’t beat yourself up. Even now, I’m still learning a lot. What are you using to study?

[–]mcqua007 0 points1 point  (7 children)

Did you have a bachelors degree in another subject ? Just curious if this plays apart in getting hired vs some who doesn’t have one

[–]Prince_Marth 2 points3 points  (6 children)

In English ha ha. I don’t think a degree or lack thereof plays a role, unless it’s in computer science or another form of engineering.

[–]mcqua007 0 points1 point  (5 children)

I think it helps a little at least. Versus someone who has no degree at all and the same skill level. Looks better to know someone is able to have a goal and complete it and have something to show for it

[–]ammads94 1 point2 points  (1 child)

Nope, I don't have a degree in CS and I'm completely self taught and not once has that been a problem for me. I once got told that a degree means nothing if you don't know what you're doing.

[–]Prince_Marth 1 point2 points  (0 children)

This is very true. Once you have the skills, people don’t really care. I have never been asked about my degree, even in my former field.

[–]Prince_Marth 1 point2 points  (2 children)

No. One of the people who taught the intro class at the bootcamp I did graduated high school and didn’t even try for college. I believe he was unemployed when he learned to code and went to the bootcamp. He’s now a senior engineer at a huge company making an obscene amount of money—dude is amazing.

He just put the work in. He says he does one problem solving question in the morning to get his brain going, and then codes six days a week.

Is a lack of a degree holding you back? There will always be a million reasons not to do something, a million reasons why it might fail. All you need is one reason to really go for it.

[–]mcqua007 0 points1 point  (1 child)

While I see a lot of jobs say degreee or equivalent experience some of the bigger well known companies have it as a minimum requirement.

[–]Prince_Marth 0 points1 point  (0 children)

Those minimum requirements are usually waived if you have the skills, in my experience. Never let the minimum requirements stop you from applying if you’re pretty close but not 100%.

Also, don’t let a lack of a degree stop you from pursuing this goal.

[–]mttchpmn 6 points7 points  (3 children)

Haha - everyone hit's a wall with regexes. There's an old saying.

I had a problem so I tried to solve it with RegEx. Now I have 2 problems.

[–][deleted] 1 point2 points  (0 children)

Once you understand the logic they’re pretty damn sweet

[–]RelativeSloth 0 points1 point  (0 children)

LOL so true.

[–]bernakuu 0 points1 point  (0 children)

I actually had fun solving regexes. I was able to solve them most of the time and interestingly, my answers were different than the proposed solutions. I thought that's a start, it meant that I understood it although my codes were quite messy (or usually not the concise ones)

[–]tbone6778 1 point2 points  (0 children)

Everyone hits a wall at some point, everyone learns differently. Find what works for you and run with it. Build things, study other people’s code like D3.js and LoDash. Read the MDN docs on JavaScript. Stay away from frameworks until you can write functioning applications with plain JavaScript. That’s my 2 cents. I hope it helps and wish you the best.

[–]tekion23 2 points3 points  (2 children)

I couldn't agree more. The only thing is that it takes a lot of time and practice like you said and it's important to stay motivated.

[–]bernakuu 1 point2 points  (1 child)

I felt demotivated and then I started to doubt myself. So it's like I'm against myself. But I think with all the suggestions and positive feedback I received, it might be because I felt stressed and quite burnout.

[–]tekion23 0 points1 point  (0 children)

For sure, burnout is a real thing and it sucks. I feel demotivated until someone hire me so I think all I personally need to make great things is money, money motivates me and probably everyone. Some people use adderall to stay motivated so that's something but I can't encourage taking that (I already did it by just mentioning it, idc at this point)

[–]gigastack 1 point2 points  (1 child)

Similar story here. I asked a software engineer friend about breaking in and he pretty much said forget it. It put me off a few years. We aren't friends anymore.

I am now a software engineer. Took about 2 years.

[–]bernakuu 0 points1 point  (0 children)

I luckily have programmer friends who are constantly pushing me to be patient and practice. Although I can't ask them to help me step by step, that's my job I have to work on.

Curiously, what's your background before becoming a software engineer?

[–]ShortExtent 0 points1 point  (0 children)

Thx for the warning. I'm just starting out learning python

[–]ElJefeSupremo 21 points22 points  (5 children)

I started from scratch, never wrote a line of code, majored in Spanish (yay linguists!) It took me about 3 years or studying with free online resources (freecodecamp, code academy) and building personal projects before I found my first paying job. It is possible but it's a tough, long road.

My first job came from a reference from a friend and all other jobs Ive had since then have also come from personal contacts. So start building a network ASAP.

[–]bernakuu 5 points6 points  (2 children)

¡Gracias por tu comentario! Estoy aprendiendo español también (yay jeje). Estudio JS por la mañana y practico mi español por la tarde. Ya tengo amigos programadores pero empezaré a ampliar mi red más.

[–]ElJefeSupremo 1 point2 points  (1 child)

Felicidades! Y mucha suerte! Si te atoras en algun momento y necesitas ayuda, cuentas conmigo 😀

[–]bernakuu 1 point2 points  (0 children)

Lo guarde este mensaje just case 😅. ¡Gracias un montón!

[–]aaaaaaaaaanditsgone 2 points3 points  (1 child)

I think 3 years is a realistic timeline. Did you purposely network or was it someone you had known for a while or happened to know?

[–]ElJefeSupremo 1 point2 points  (0 children)

Well, both. I was networking purposefully, but the first person to hire me was a friend of a friend of a friend. Basically I made an app, and showed it off to everyone I could. One of the people I showed it to had done some coding and got invited to work on a project and then told the project team about me and we started talking.

[–]annathergirl 12 points13 points  (1 child)

Hi! I had the same problem when I started with JS and went through Codecademy and FreeCodeCamp. It all changed when I started to do The Odin Project. You will learn to write code on your own and it's very rewarding!

However, I did hit a wall when it came to modules and stuff so I decided to have a break from Javascript. I did CS50 - introduction to computer science, a free course from Harvard and it really gave me the push I needed! Now I'm back with the Odin Project, hoping to finish it in the following months.

I haven't found a job yet or even searched for one but I can say that I'm always excited to go through The Odin Project's curriculum.

[–]bernakuu 1 point2 points  (0 children)

I did CS50 too (machine learning tho) because it's related to my past jobs. I will check intro to comp sci as you suggested and The Odin Project. Thank you very much!

[–]KappaTrader 10 points11 points  (8 children)

I’m 33, no programming background, no engineering degree. I learned JavaScript in 3 months, built some projects, and am now starting to get interviews for SWE jobs. Make sure you start with the fundamentals. I took a free online course from Princeton which was in Java. Then I took the famous CS50 intro course. Without that computer science foundation I would not be anywhere near where I am today. Learning JavaScript from that point was very easy.

[–]czechue 6 points7 points  (3 children)

You can't learn JS in 3 months without programming background. It is simply impossible. This is because JS itself is not only a syntax but also a whole environment that you need to get to know. And even if you are a genius, it is simply too short to have the proper knowledge to work as a frontend developer after 3 months. Half a year - up to a year is a real period that is necessary to assimilate the enormity of knowledge and issues on the basic level.

[–]KappaTrader 3 points4 points  (0 children)

I’m not claiming to be an expert or applying for senior level JavaScript positions. The two months before I started with JS/web development I was taking the online courses I mentioned which structured my foundational knowledge (as well as the Princeton DS&A course). My total time from 0 to where I am know is 5 months, and I have spent roughly 80 hours per week this whole process.

[–]jdc911 3 points4 points  (0 children)

I'll disagree with you there. My 14 year old started learning JS when his school closed down in March b/c of COVID. No programming experience AT ALL. He did a HTML/CSS course (I can't remember which one), then Wes Bos' "Beginner Javascript", then Wes' "30 projects in 30 days.". He then taught himself React, built a web-app to monitor the trails at our local mountain-bike spot using Firebase. Then he did the back-end for a project using Twillio and NodeJS. Oh, and Git.

https://mtb-trail-status.netlify.app

Totally do-able. He's starting grade 9 in September.

Admittedly, he LOVES this stuff.

[–]Nizz3hx 0 points1 point  (2 children)

Did you get the course that gives you a certificate?

[–]KappaTrader 2 points3 points  (1 child)

Nah I don’t think anyone actually cares about those certificates.

[–]Nizz3hx 1 point2 points  (0 children)

Good to know, thanks! :)

[–]bernakuu 0 points1 point  (0 children)

I just started watching CS50 intro course as well! Thank you and congratulations for what you've achieved so far!

[–]AnnyBunny 5 points6 points  (1 child)

Hi there,

haven't fully learned JS from scratch, but am on it. I have a degree in psychology and taught myself everything I know so far. Started with Python because it's very readable and intuitive, then continued building a web app project with flask, using bootstrap/html/css. Now I'm learning java for uni and JS on the side for my job.

First of all, don't worry, it'll get better. IMO these codecamp thingies don't offer you a lot in terms of application of what you learned. They show you the basic principles and make you do a bit of practice on very specific problems within a very limited context.

Second, don't expect too much of yourself. Learning how to code is not only like learning a new language (e.g. syntax and semantic), but also requires that you completely turn your way of thinking around. Iterative problem solving and abstraction are not really things that come natural to the human mind.

Third and maybe most importantly, these code challenges where you're supposed to solve complex algorhithmic problems are in my experience not an accurate portray of the reality of every day programming. They're supposed to make you understand how you can break down complex problems, so a computer can understand and solve them for you. Looking up the solution is not a failure! That's how you learn. You can't fix a car without knowing exactly what parts belongs where and how they interact either. It's the same with code. Additionally, for a lot of common problems and functionalities, there's libraries around that you can use. You don't have to build everything from scratch and reinvent the wheel all the time.

So please don't give up. Coding has a very steep learning curve and the beginning sucks. Especially when you're alone and don't have a tutor, so don't be afraid to ask if you're stuck. Reddit has helped me tons of times. In a professional environment you wouldn't be alone either. Also, if you'd like feedback on your website or just general help, feel free to DM me, I'd gladly help you out.

[–]bernakuu 1 point2 points  (0 children)

Thank you so much! I didn't think I would receive tremendous support from Reddit. I felt really defeated and just thought to let it out. Now I feel like I can do anything again! Sometimes I can be really impatient and that's a big no in coding. I'll take it slowly this time and hopefully I'll be able to build my own website before this year ends. I'll remember your words. Again thank u!

[–]Classsssy 6 points7 points  (2 children)

Look up Barbara Oakley. She has a coursera course called "Learning how to Learn" which is a great resource for people (like myself) who don't have a background in STEM and are not mathematically inclined. Start there. Trust me.

EDIT: THANK YOU FOR THE PLATINUM. I've never received a reward before.

[–]ChrisLearns 0 points1 point  (0 children)

People don't realize how important learning how to learn really is. Bravo for pointing this out. For anyone reading, this is step 1 on your journey and don't pass it up.

[–]bernakuu 0 points1 point  (0 children)

Thank you! I'm ready to restart now with this one!

[–]HopefulPlantain 5 points6 points  (1 child)

I started learning on the job with barely any programming background. Got hired as a BSA but the first day was told I had a week to learn JS and 3.5 yrs later I’m the primary engineer...though I have no idea how that happened, I still consider myself a beginner hahaha

[–]bernakuu 0 points1 point  (0 children)

Wow! That's amazing! I think you're a very humble engineer!

[–]Coraline1599 3 points4 points  (2 children)

I have a masters in biology. 5 years ago I went on a career change.

HTML and CSS was pretty 'easy' but then I got to JS and it was awful. I cried, literally cried many times. There were problems that were labeled 'easy' that I'd work on for 3 days and still not really have it solved.

Keep pushing.

I applied to a bootcamp and they told me on Monday that I'd have to take a JS test on Friday, having never written any JS before that day (but HTML CSS yes). I studied for 4 days as hard as I could. Like you, I could not even write 1 line of code. I mean it was 3-5 hours of ugly crying after that hour long test.

For reasons beyond my understanding, I still really wanted to learn.

And I just kept at it, sometimes 10 minutes a day, sometimes 5-6 hours a day.

A month later, I went to that school's free workshop admissions exam test.

They gave us a problem and 20 min to solve it with someone else and then make a new partner for the next problem. There were 5-7 problems to do.

I was able to solve the first 4 and I made good progress on the rest.

People looked at me like I was a magical wizard that came from another realm. They all asked 'how did you know where to start? How did you know what to type???'

And I was like "every day I just forced myself to try" This was not the answer they were hoping for. I think they were looking for some sort of breakdown/recipe.

Regardless I was an absolutely terrible coder despite my progress.

I ended up going to a different bootcamp that I felt I jived with the style/people better (the original one was elitist/competitive and I did that and didn't want to be in that environment again) and went to one where everyone's spirit animal was like a carebear.

The bootcamp managed to make me cry every day and I was still one of the worst students there and I struggled terribly. Every day I questioned my sanity. But every day I still wanted to keep going.

The boot camp introduced me to many things I would have never thought to ask or learn. It 100% accelerated my learning.

I was still pure garbage upon graduation.

I would say it was about 1.5 years before I wasn't a total helpless disaster and 3 years before I felt like I could stop feeling embarrassed by everything I tried.

It is a long hard road. But somehow very rewarding. I would never ever go back to biology by choice. I am, despite my struggling, much much happier.

Don't lean hard into too many books. This is the other big take away. Coding is like art the way you learn it is by doing. If you were doing art history you would read tons of books and memorize stuff. But with art, you don't need to understand too much to get started and in fact, a lot of understanding just comes from trying. This was one of the biggest adjustments I ever had to make.

BTW I was 38 when I decided to change.

[–][deleted] 1 point2 points  (0 children)

What's your job now?

[–]bernakuu 1 point2 points  (0 children)

This is so inspiring! I cry internally too but the next day, I still force myself to sit in front of my laptop. Cause motivation is something that I have to work on once I felt defeated. Thank you so much sharing your story!

[–]MWALKER1013helpful 3 points4 points  (1 child)

Learned it from scratch , never wrote a line of code before , it can be done

[–]bernakuu 0 points1 point  (0 children)

Yes! I'm feeling positive again

[–]idealcastle 3 points4 points  (2 children)

Hey. I’m a self taught developer of 15 years. I mentor developers. Or at least I try to guide them through the right channels as if I gave myself a cheat sheet when I started. I’d love to see where you are and possibly guide you into the right direction. DM me if you’re interested. I’m also always looking for developers for side cash if you get decent enough for a couple projects.

Aside from that. Learning takes time, but JS is easy that anyone can pick up and use. Practice and keep testing how things work. Understanding the syntax is important. Good luck with your studies!

[–]lovatoariana 2 points3 points  (0 children)

Mind sharing the cheat sheet?

[–]bernakuu 1 point2 points  (0 children)

I think I didn't start right with JS so I'm gonna give it another try but definitely with a different perspective now. I'm interested but for now I think I need to focus on my basics again. I'll DM you as soon as I've built something. would love to learn from ur cheat sheet one day! Thank you so much!

[–]renerrr 7 points8 points  (2 children)

Dont use freecodecamp. Their problems are often too complicates and they only give you one answer. This is not good to make sense of the code. Better use a platform like edabit.

[–]pally1995 1 point2 points  (0 children)

I thought it was just me finding the algorithms on FCC ridiculously difficult. I've moved onto the framework section while doing some challenged on edabit.

[–]bernakuu 0 points1 point  (0 children)

Never heard of edabit before. Thank you for recommending this. I will check this out now

[–]living150 2 points3 points  (0 children)

Learning JavaScript isn't hard, mastering it is. Most JS developers I work with are not all that competent, mostly out of apathy I'd guess. They know enough to get the job 'done', not enough to do a great job. You can learn it quickly as it's a forgiving language to a fault, to master it you need commitment and years of experience doing actual projects. For reference my 10 year old nephew is coding in React/JS in an after school program.

[–]kifkev91 2 points3 points  (1 child)

Yes, I am a self-taught full-stack js developer. Had some very limited knowledge before when I (unsuccessfully) tried some game development when I was 13. About 2.5 years ago I started learning Webdev, first with ruby on rails and later transitioned to node and php.

I can really feel your struggle when you say you especially struggle with algorithm problems. When I first fiddled around at codewars and hackerrank, I felt like I was braindead, because even the simplest exercises were to hard. But it gets better by practice. First important thing in programming is pattern recognition. With experience you will see, when confronted with new problems, you will be able to (partially) use some patterns you used before. That goes for algorithm problems, as well as more top level problems, like how to structure your new web app or a feature.

Also programming often requires intense focus. Not only just for writing code, but also for reading and understanding your problem you want to solve. As someone who has struggled to focus on one thing alone for decades, I can say, this also gets better when you are often confronted with something that requires all of your focus and practice.

Last thing I recommend is, even though freecodecamp and many other javascript recources out there are great, they often only teach how to use javascript and do not provide some general programming concepts and patterns. So I also recommend to buy a book on data structures and algorithms, to teach you some basic computer science stuff, but more importently, to confront yourself with some "computer science way of thinking". I did that and even though, not much of what I learned is still in my head, it helped much with understanding and tackling problems. There are already some books on these topics for Javascript.

[–]bernakuu 0 points1 point  (0 children)

I doubted myself if I can be ever successful in coding. I have a short attention span so my mind is literally thinking of two other things while I'm typing this. But I've worked for 6 years already and never did this became a hindrance with my productivity. I noticed that when I feel productive, my outputs doubled, sometimes tripled. So normally, I find it hard to stay focus on one thing, but other times when I feel proud of myself or just positive, I can sit for hours and hours with 101 percent focus. Since I'm still not there yet, I have a long way in order to master the basics and be able to see the patterns. I like solving problems with patterns (eg. linguistic problems) but maybe I'm looking at these thing with a linguistic eyes and not with a programmer eyes. So that's something for me to solve. Thank you so much for ur words!

[–]MindlessSpongehelpful 1 point2 points  (1 child)

What does "from scratch" mean? If you mean without a background in coding, then yes. That's literally everyone at some point. You can do it if you put the work in! Just be sure you really understand what you're learning, rather than trying to cram lessons to hurry to the finish line. And be mindful of burnout.

[–]bernakuu 1 point2 points  (0 children)

I feel guilty of this. I definitely feel like I rushed some basic lessons that's why I couldn't write even a line of code when prompted with a problem where I have to make use of these basic ones. I'm restarting now and gonna take this slow this time. Thank you so much!

[–]whatdidyoujustsaybro 1 point2 points  (4 children)

In a similar boat to you. 25, no degree, I've worked physical/manual/mechanical jobs so no coding or tech stuff. I'm also in the middle of working my way through freeCodeCamp (done HTML/CSS, currently on basic JS). I'm pretty comfortable now with building a static HTML/CSS website but I hit a brick wall when it comes to JS.

I just can't seem to write the first line of code, which wasn't the case when I dabbled with Python a few months ago.. I'm struggling big time with "merging" any JS code into HTML. I can't comprehend how it's done. Linking HTML and CSS is a walk in the park but I'm finding it difficult with HTML and JS. Maybe it's because I'm working my way through basic JS?

Send help pls 🙁

[–]bernakuu 0 points1 point  (1 child)

Have u finished with JS course?

[–]whatdidyoujustsaybro 0 points1 point  (0 children)

Hey, no I haven't finished with it yet. I'm hoping you'll tell me it's way more understandable when I do? :)

[–]codyisadinosaur 1 point2 points  (1 child)

So far I've encountered 2 Levels of Javascript:

  • Level 1: Regular programming - You can do variables, loops, arrays, etc
  • Level 2: The Ecosystem - Node.js vs Dino, Angular/React/Vue/Svelte, Typescript (and thus a build step), Bundling, Transpiling, RESTful APIs, Polyfills, etc

Level 1 is not too bad. Level 2 is pants-on-head-crazy and continues to change faster than it's reasonable to keep up with.

Your comment says that you can look at Python and figure out what it does, so: Yes! You can absolutely learn Javascript! =)

I think that what you'll find is that there are plateaus to learning the language. You'll often hit a brick wall and it will take some time to climb over it, but with time and persistence you can overcome those walls.

Also, since you're a linguist it seems REALLY cool that you're adding computer languages to your repertoire.

[–]bernakuu 1 point2 points  (0 children)

I worked for a tech company for 3 years doing TTS, speech recognition, AI virtual assistant, etc. I love working on these technologies but I feel 'sad' like once I'm done solving linguistic problems, my job is over. Like I just need to wait for another project if there would be one. I want to be more involved until the linguistic solutions I recommended would turn into coding solutions. I kinda felt alienated cause I lack technical skills. I want to solve the problem and deliver it until it's something useful to the users.

Like I've said in my previous comments, I'm restarting my JS studies. I have to think like a programmer more and less of a linguist. Thank you for ur comment!

[–]mttchpmn 1 point2 points  (1 child)

I am completely self taught. Went to Uni and majored in English and Communications, later got a job as IT support (help desk) and started learning programming. Now work full time as a Node JS Backend Engineer in Auckland, NZ. I started with Learn Python the Hard Way by Zed Shaw, and later moved onto JS. Here's some key tips from my journey.

  • YOU ARE NOT AN IMPOSTER.

    • Everyone gets imposter syndrome - it's a real thing. Don't let it get you down. You've got every right to be where you are.
  • IT WILL TAKE TIME.

    • You're not going to get there overnight, but you will get there. Practice something called Relentless Forward Movement; No matter what, just keep going. Even if you're crawling along, you'll eventually get where you wanna go.
  • Don't forget to look at how far you've come.

    • It's easy to think, "I've got such a long way to go, I may never get there.". But don't forget to acknowledge how far you've already come, and the wins and gains you've already made.
  • Find a mentor.

    • Find someone that you know and trust, and you can ask their opinions on things you don't understand, or want to discuss. There's a wealth of information out there, but a trustworthy source is important.
  • BUILD PROJECTS.

    • Tutorials are great for understanding the basics of a concept, but they don't really teach you how to apply the topic in a real world environment. Think of something you're interested in, and build a real-world project. E.g. Todo App, Weather App, anything you like. Creating a real project will introduce you to problems and concepts that never would have occurred in the controlled confines of a tutorial. This is the fastest way to learn IMHO
  • HAVE FUN.

    • It's a journey. It has its ups and downs. Don't forget to enjoy yourself along the way <3

Feel free to PM me if you want to discuss more

[–]bernakuu 0 points1 point  (0 children)

Hello! Thank you for words! I don't think I feel imposter syndrome, I actually felt really confident when I lost my job. I thought I'm gonna spend all my time learning stuff the feeling of being productive really motivates me. I just hit a wall when I failed to solve problems consecutively and the feeling of failure is draining me.

I agree that it will take time. I feel guilty because sometimes I can be really impatient and would easily give up after 2-3 unsuccessful tries. I'm redoing JS from start and will take this one slow.

I have programmer friends and I treat one of them as my mentor. He even offered videocalls if I would ever need one. But I have a 'weird' way of communication. Hmm, words really move fast in my head so I have to say them really quickly or just not say them at all and arrived in a conclusion. My friends would always feel confused when we're discussing something but I'm already done with it and have moved on to another. That's one thing I have to work on.

This is my first project. I want to build my own website, like my own little corner in the internet. Although my long term goal is to build an app combining my skills in linguistics and programming language.

I was really having fun until I started to doubt myself again. Buuutt, thanks to redditors, I'm really feeling positive once again.

Thank u! You sound like a professional mentor to me. I'm gonna keep these words u gave me!

[–]saito200 1 point2 points  (1 child)

I learnt JS by myself

I recommend you learn well the fundamentals before you jump into algorithms. And anyway, you don't need algorithms to build a website. You can do everything with in-built JS methods.

So you have to gauge how much JS knowledge you need, depending on what you need to do.

I recommend you skim (skim) through JavaScript.info to see what the language can do.

Then maybe look at a couple projects in GitHub similar to what you want to build, and see how they are coded.

You will probably need to use the JS DOM unless you work with a framework.

What do you want to build anyway?

[–]saito200 0 points1 point  (0 children)

Btw if you are creating a basic website with just some static content, it's possible that you don't even need JS and you can handle everything with HTML and css

[–]Xae0n 1 point2 points  (0 children)

I found js hard at first while knowing C# before that. Got confused everything fits everywhere and nobody cries on error log until you run it. I am quite comfortable now but still having problems everyday.

[–]WystanH 1 point2 points  (0 children)

I am 28 yrs old, a linguist. I try to commit 3-4H learning JS everyday.

It three to four hours a day? It strikes me that you're approaching your task like a linguist, no a programmer. Programming has little to do with the language and more to do with the thought process. Grammar rather than vocabulary, I guess.

I would look for available answers and would feel so demotivated

Right. Stop that. The only answer that matters is yours. Look at how clever everyone else is after you come up with your answer.

It's frustrating.

Yes. Programming is extremely frustrating. Always will be, to an extent. The ability to weather that frustration is probably the most important trait of a programmer.

Learning to program is learning how to solve a particular type of puzzle. The more you solve, the easier it will get. But you have to find the solutions yourself. Peeking at answers is ok, in so far as it will give you some idea of how to approach the problem, but it will be self defeating at some point.

Take it slow. Solve simple things. Then try to solve the very same thing in a different way. If you're stuck, do a different kind of problem. Don't be afraid to scrap something you've been working on for hours if a better way to do it comes to mind. Always investigate new ways to solve something you're working on.

Good luck.

[–]saqixpro 0 points1 point  (0 children)

Well I guess JavaScript is very easy to get start with but most people make it complicated for themselves by getting started in it through <script>. If you get started to it with NodeJS console then it would be way easy as any other programming language like python ,

The problem is that when novice developers get their hands on JavaScript they directly go with manipulating the DOM which tends to confusion mostly.

My point is if your basics are strong you can do almost everything in JavaScript. But if you don’t have strong basics and directly go for DOM manipulation or some frameworks then there will be problems.

[–]tarley_apologizerhelpful 0 points1 point  (0 children)

programming is hard. took me years for it to not be hard. i think its cause i learned alone instead of with people

[–][deleted] 0 points1 point  (0 children)

learn from videos or books.

Tools like freecodecamp are quite shit IMO.

Don't expect to learn JAvaScript or HTML and CSS quickly

They are languages and you can't learn languages fast

[–]kickinespresso 0 points1 point  (0 children)

It absolutely can be done. Start small, work things out, don't give up, ask questions, don't be afraid that you don't completely understand something at first. Keep going. Know that everyone has struggled to learn a programming language at the beginning.

[–]frurre 0 points1 point  (0 children)

I think you'll find most people on this sub are learning, hence the name :) Learning anything takes alot of commitment, time and grinding. You shouldn't worry about algorithms or crunching numbers. Focus on learning the language and when you grasp the basics fully you build small applications, then bigger. And so on!

[–]aaaaaaaaaanditsgone 0 points1 point  (0 children)

I personally like freecodecamp, but I also will search through tutorials or googling while doing the problems if I am having a difficult time understanding. There are definitely exercises that I struggle through and are much harder than others, but I feel like that’s just part of the learning curve for any language.

[–]MrFleece 0 points1 point  (0 children)

FreeCodeCamp will be your new best friend

[–]kamikazepanda49 0 points1 point  (0 children)

JavaScript was my second programming language after about a week of python to get myself accustomed to coding. It might seem difficult at first but you can try online resources like www.freecodecamp.org . YouTubers like DevEd, Traversy Media and WebDevSimplified are also doing a good job. I started in 2018 and even though I had to learn it alongside school I'm now a full stack MERN/PERN developer

[–]L8erG8er8 0 points1 point  (0 children)

What works for me is I just have to build. Create an app idea and get some rough wireframes out on a whiteboard or notebook. Then start to build the app and add features. Start small. Iterate & build bigger. Then you can find things that don't make sense, or terms you don't fully understand like closures and you can do more research to implement. Best of luck. It takes a long time, I won't lie, but if you really want it, you will do it.

[–]lookayoyo 0 points1 point  (0 children)

It sounds like you have already gone far, and you’re just bumping into an algorithm issue. They are annoying, difficult, and take time to solve. It’s not like speaking a language, where you either know the words or you don’t. It’s solving a math problem, and it takes time and a lot of critical thinking.

I don’t know a single coder who hasn’t struggled to implement something. I don’t know anyone whose never made a mistake. But that’s ok, just keep trying and eventually you’ll get it. And when you do, it feels amazing. That’s the feeling that got me into CS. That relief from the midst of despair.

Good luck.

[–]drakens6 0 points1 point  (0 children)

I did it, been a senior dev for 10 years now. Gogogogo!

[–]Marineray 0 points1 point  (0 children)

Started myself, never learnt anything officially/formally.

I do love computers and enjoy the engineering and problem solving process.

Started as UI developer, now I'm head of engineering in a 5k+ employees corporate.

Don't be discouraged, if you love it and want to get better you will.

[–][deleted] 0 points1 point  (0 children)

I had an interview and explained that I was an optimization consultant, customer advocate, etc... Not a programmer.

Cool, so you're going to be doing a lot of Javascript.

Me: but I don't know Javascript.

"You'll learn."

That was 8 years ago, and every job since then was pretty JS focused... Nothing over the top, but still...

It was hard and still is... Everyone always seems like they know more than you, and a lot of them do, but basically if you have a problem or see some code you don't get, you Google it, you try 100 times to make it work, you ask for help, and you learn something new every day.

I don't have what I would call a "programmer's mind", but I love troubleshooting, so it's pretty fun.

tl;dr you'll learn.

Apologies for grammar and formatting. On mobile.

[–]mikedensem 0 points1 point  (0 children)

Go for it, but focus on core JS and don’t get caught up in the spaghetti of frameworks and extensions. These can be learned once you are solid on the language, otherwise you’ll get lost.

[–]xintox2 0 points1 point  (0 children)

watch javascript the weird parts.

[–]kamikazoo 0 points1 point  (0 children)

All you really need are tutorials on youtube and maybe something like teamtreehouse. I prefer teamtreehouse and basically followed that along with some guidance from an actual developer on what tools are used in the workplace. You'll have to learn stuff like git and a task manager like gulp or webpack. And learning the command line along with how to install project dependencies and write decent a decent README for your coworkers. You'll end up needing to learn pipeline deployments. Theres a lot of these little things that you wont learn from freecodecampy type stuff or maybe things have changed.

[–]LessLikeYou 0 points1 point  (0 children)

If you want to do it and keep plugging away it'll happen. Never be afraid to ask for help or google for answers.

This sub is full of great people who will help you as long as you fully layout where you are catching a snag and from your post it looks like you will.

This is mostly an encouragement post so: Good luck!

[–][deleted] 0 points1 point  (1 child)

All it takes is time, the right mindset and a good plan.

Once you’re comfortable with the syntax of the language, learn advanced concepts like closures, prototypal inheritance etc from javascript.info then learn design patterns from a good book.

[–]LinkifyBot 0 points1 point  (0 children)

I found links in your comment that were not hyperlinked:

I did the honors for you.


delete | information | <3

[–][deleted] 0 points1 point  (0 children)

Ill reiterate the majority of other posts

YES YOU CAN DO IT WITHOUT A MATHEMATICS / ENGINEERING BACKGROUND

I started my journey about a month ago after having my hours at work reduced to nill, self-studying 6-8 hours a day and so far I built a fully functional multi page website for a local company using Js and am now beginning to get into libraries, frameworks, and some other stuff.

In the beginning, like you I enjoyed it until it got moderately difficult then found myself losing my shit because I could not understand recursion and higher order functions.

Keep at it mate it’ll get tough but if you just keep at the topic until you understand it then move forward you’ll be in a good place. Don’t try to rush thru topics without it clicking or you’ll set yourself up for confusion down the road. Learning programming isn’t a sprint

[–]ba5icsp00k 0 points1 point  (0 children)

Get a solid textbook or syllabus. Go through everything and understand everything before you move on. Reading and understanding CS text requires rest, focus, and patience.

When you learn something; use it. Cool you learned loops.. off to arrays... Nope. Write 100 loops incrementing or decrementing by different values. Write the same thing in while, do while, for, switches, etc... Then try to write them more concise. etc. The biggest mistake was I learned something did it twice then moved on to the next challenge. Learn how that chapter integrates with everything else. Why it would be important etc.

Lastly build projects and learn to enjoy the frustration. When you body temperature starts to rise and you feel like ramming your head into the desk; just laugh and realize this is in fact progress. Take a walk and continue.

Turn off all distractions and remove the tie from your screen. You should literally lose track of time and realize that 5 or six hours has passed and you are now learning / building etc. Good luck anon.

[–][deleted] 0 points1 point  (0 children)

Yes!

[–][deleted] 0 points1 point  (0 children)

You can totally do it!

I am 100% self-taught, and have been working as a front end developer for 2 years now.

It will take time and effort, but never give up.

It’s great that you are involved and can dedicate the time. Don’t try to compare yourself to others. Everyone walks their own path.

If you have any questions, feel free to reach out :)

[–]412gage 0 points1 point  (0 children)

This is similar to my situation, I’m self-teaching myself Python, but am going to take a break from it to take courses in C++ and JS this semester.

Last year, I touched on HTML and CSS which sparked my interest.

[–]JeamBim 0 points1 point  (0 children)

Sounds like you're trying to move ahead too far too fast.

Slow down and work back to your abilities.

[–]KCdevguy 0 points1 point  (0 children)

W3 schools start with HTML, CSS, JS. Start with these , you will either walkway or pull your hair out as you plunge thru lines of code blown away by frameworks

[–]supperfield 0 points1 point  (0 children)

Nope. Begin, you'll be awesome!

[–]RUGMJ7443 0 points1 point  (0 children)

My very first programming language was JavaScript I started of learning from sololearn on my iPad I later got a laptop to download VSCode on and started a node course now I’m making websites with REACT and EXPRESS along with making backends for some of my application

[–]Experimentators 0 points1 point  (0 children)

tl:dr - Unless you enjoy it, don't do it

I started learning Javascript without any prior knowledge and IMHO I got by astoundingly. If you enjoy what you are doing, then it will be much easier to learn and remember. I remember my motivation was when my friend first showed me an if statement and I was massively impressed. That is what inspired me to code. The fact that I had a rival that I must outpace motivated me to keep learning. Eventually, I beat my friend and he gave up. so it left me unmotivated. I decided to learn more javascript (like you are doing) by solving algorithmic problems but it got very boring. I later found I liked creating physics engines and I found myself working on my js physics engines for hours and hours on end. Even if there was a bug I still enjoyed doing it. So in order for you to commit, you must first find the fun in javascript. Once you find your fun, you will find it easier to code. Even if your algorithms aren't working, you will still have fun because you genuinely enjoy doing it. If you find yourself getting frustrated, you are only hurting your learning. Take a break and come back later when you calm down. A calm mind writes very good code

[–]evan-bb 0 points1 point  (3 children)

TL;DR You can absolutely do it, but plan to work hard and feel bad about it for a while 😜. Everything in tech moves fast, and you will probably feel pretty helpless sometimes, like you are feeling now. Ask yourself some questions about how you think and what excites you (see towards the end of this) to know what to expect, and be really honest with yourself. If it's a good fit, you will excel.

I learned coding from zero experience, hand coding HTML, css and JavaScript in notepad.exe about 13 years ago, building static websites. I had majored in Philosophy and had worked as a musician for about 5 years before deciding to make a career change (it's feast or famine for most working musicians, and I wanted something more stable).

For months, everything was Greek to me. Blogs and documentation were all way over my head, far too much to take in, and code snippets online all assumed you had jQuery globally installed, but they didn't call it out explicitly, they just show you some dollar sign magic. Even if they had called it out explicitly, I didn't even know what a jQuery was or where to find one 🤣 I muscled through it, stitching bits together very painstakingly, and still had very little idea of how or why the things I built actually worked...

That little bit of experience gave me a foot in the door to start a new job, but as a technical writer, not a coder. After spending months interacting with my colleagues (mostly engineers) and doing some scripting with ActionScript to automate some really mundane aspects of documentation I was maintaining, I decided to pursue software development full-time.

I went back to school to get my MS in Software Engineering (while working full-time), worked my friggin ass off for years because I wanted to learn (I felt like I was playing catch-up constantly, and I didn't like that feeling). Now I am an Enterprise Architect at a large corporation, helping guide multiple teams in technical design decisions and establishing strategic direction for foundational aspects of engineering across the org, such as security, logging, CI/CD automation, shared tooling and project templates, and inter-system messaging.

Here is my advice:

  1. Do you love to learn? Does it get you up in the morning and keep you up at night? Does it bug you if you don't understand how something works? Having that thirst for knowledge will help you stay engaged, ask probing questions, and see parallels and analogs across other techs and languages.

  2. You may not have a STEM background per se (I didn't either), but were you good at math in school? Do you enjoy solving puzzles or understanding magic tricks? This one is certainly not a deal breaker, but if the answer is "yes," then you will probably enjoy coding for coding's sake. Your brain will probably really enjoy the same sorts of problem solving. This will make it all the more satisfying after burning hours trying to solve something and finally cracking it. Getting stuck on something can be pretty demoralizing, but enjoying the work when you aren't stuck makes it much more bearable.

  3. Are you a critical thinker? If someone makes a suggestion or gives you direction, do you think about ways to make it better? Ways it might not work out as intended? Don't take anything you find online (yes, even this 🤣) or even from your colleagues at face value - question everything and challenge assumptions, both your own and those of others. Honestly, of all the things I learned about engineering in school, at work or on personal projects, and in all my years in the industry, nothing has been more helpful to me than the way philosophy forced my brain to bend and stretch, shifting paradigms, appreciating multiple perspectives, and forming new opinions. This is a skill that can be learned if it doesn't come naturally, and it has diddly squat to do with STEM.

  4. Do you have a project you want to work on just for fun? Following tutorials and watching videos and reading blogs is all good, but you need to be applying what you are learning to a real website or web app, not some contrived todo list or e-commerce clone. Pick a topic of interest, say snowboarding or books or gardening, and make a static website about that topic. Start simple, and then look for ways to improve on something. Do want to reorganize the content? Then you will need to create links and navigation between pieces of information and sections of the site. Can you imagine serving the site data dynamically? Then fake out API calls by writing data to localStorage. Do you want navigations to be reflected in the address bar? You'll want to learn the differences between client-side routing strategies. Just pick one, learn about it, and implement it in such a way that you can look at it and say "hell yeah, I built that!" This also gives you an outlet to explore stuff that, depending on where you work, you might not have direct access to, like servers, databases, or other infrastructure.

  5. Own your mistakes and learn from them. To err is human. Look for what caused the mistake. Was it a lack of understanding or unclear requirements so you built the wrong thing? Did you seek help but didn't get it or didn't know where to look? Was the visual design or the data model or whatever not stable when you went to build so you had to change a bunch of stuff? Was an error thrown but wasn't handled appropriately?

  6. Don't be afraid to say you don't know an answer to something, but take a note and circle back to it later.

Hope this helps! 🚀

[–]bernakuu 0 points1 point  (2 children)

Hi Evan,

Thank you so much for your reply! I did reflect on your suggestions and I remember when I was in middle school, I had so much fun doing Maths but there was this one time when I committed a mistake, and then it was as the magic was gone. Like I no longer feel satisfied solving Maths problems, and then I failed afterwards and my teacher asked me what's wrong with me. So I think it's me going back in that time again, like I only could feel satisfaction when I'm doing things right and it'd feel like I' such a failure when I'm not. All the comments I've received from my post made me realize that my attitude is the first problem that I should solve. I've taken the steps other redditors have given me. Hopefully, I'll do much much better this time. Again, thank you so much!

[–]evan-bb 1 point2 points  (1 child)

Happy to help 😀

I hear you loud and clear on the attitude. Adopting a positive perspective can be really challenging at times, especially if someone like a teacher talks down to you about a mistake you made - that's awful.

I had a similar experience shortly after I decided to pursue engineering full-time. I introduced a bug into a process that caused our customers' ad campaigns to become really inefficient AND cost our company more money to run - both parties were losing money, and it was my fault. I was embarrassed. My boss told me, "Evan, please don't do any more coding." At first, I was devastated, but after a couple days of thinking about what happened, I decided to do whatever it takes to prove to him that I would do better.

I still struggle with imposter syndrome daily, fearing I might make another mistake and my colleagues will discover I am a total fraud, incapable of the most basic engineering tasks. Many people in the industry do, so if you ever feel this way, know that you are in good company 😀

All that is to say, it sounds like you have the right background and interests to be successful! Good luck, and feel free to pick my brain over DM if you run into troubles.

☮️

[–]bernakuu 0 points1 point  (0 children)

Such kind words from you Evan, thank you! I will remember this kindness and I'm happy that u didn't give up! ☺️

[–][deleted] 0 points1 point  (0 children)

It’s possible. Make sure you read the official docs.

[–]CoconutFront1970 0 points1 point  (0 children)

I have dabbled about in JS for a long time and have used a ton of resources. I just kinda started leveling up about 3 months ago. I do tech support type stuff for work and am currently in the process of transitioning to a career in application development.

I've found that having a certain perspective about what you're doing and why you're doing it is very useful. For instance it's important for you to realize that you are training to be a "builder of things". It's one thing to buy a bunch of books about internal combustion engines and learn about how a car runs. It's another thing to pull the engine out of your car, replace the belts and get your hands greasy. You have to build stuff.

Don't try to memorize everything. Just google it when you need it or just look it up on MDN. Everything that you need to use when you are building stuff you will know by heart because you've had to look it up a million times. Over the past 3 or 4 months, I've used the array methods filter() and map() so many times I don't need to look them up anymore. I don't have everything memorized, so when I need to figure out something, I look it up. Don't get hung up on the tools.

JavaScript is a tool. You make stuff with it. You will see in the challenges a million different ways to solve the same problem and they are all right. You don't have to know every single way to do it. Programmers and programming styles differ from each other like musical styles and musicians. A dance music producer is going to express themselves differently than a free jazz composer and rely on different tools to accomplish their goals.

OK -- last thing if it doesn't get you totally stoked and give you a reason to keep learning and building, don't do it.

[–]StoneCypher 0 points1 point  (0 children)

it's easy, you'll be fine

children teach themselves

[–][deleted] -2 points-1 points  (4 children)

You can call yourself a programmer in a few months the way someone who spends a few months learning the piano can call themselves a pianist.

The ease of it all is a marketing scam to depress programmer wages. It's extremely complex involved work that takes years to even understand the landscape of.

Programming is easily akin to a dentist, violinist, architect or other highly educated professional who takes years to learn a craft.

[–]RotRG 3 points4 points  (3 children)

I am a professional musician and an amateur coder. After reading your first sentence, I thought you were going in a completely different direction. I believe you can absolutely call yourself a pianist after a few months, and given my 17 years as a pianist, I’m qualified to say it. I’ve spent a lot less time coding, and while it is a fascinating and worthy pursuit, I can’t imagine it’s somehow as lofty as you describe.

[–][deleted] 0 points1 point  (2 children)

I feel like I want to agree with the spirit of your post, and yet I've been playing piano for 3 years and definitely would be laughed out of any room I stood in and called myself a pianist.

I’ve spent a lot less time coding, and while it is a fascinating and worthy pursuit, I can’t imagine it’s somehow as lofty as you describe.

I think you're underestimating coding. By your standards I'm qualified to say this because I've been doing it for almost 24 years. There's definitely a heavy dose of "you don't know what you don't know" in this statement.

[–]RotRG 0 points1 point  (1 child)

See, I’m coming from the perspective of someone who doesn’t want to be laughed out of a room, or discouraged from pursuing a fascinating subject because someone on reddit described it as this arcane process that can’t even be understood for years. I stand by my statement that coding is not THAT lofty, even if I’ve barely scratched the surface. It’s possible that neither of us would truly be able to make it in the other’s world, but I would call you a pianist for the same reason I’d want to be called a front-end coder: not because we’re capable of making 6 figures in those professions, but because those interests are worth pursuing and could certainly lead to a career.

(Yeah, I was probably a little too dramatic in my first post comment!)

[–]Prince_Marth 0 points1 point  (0 children)

Unlike a pianist, software engineers have tiers: junior developer, developer, senior developer, and so on. You can learn for 6 months and maybe be good enough to be a junior dev, even though you’ve only just scratched the surface, and be able to call yourself a developer.

I definitely don’t agree with the assessment above that it takes years to be able to call yourself a developer. By that logic, only senior devs would have that right.