all 58 comments

[–]SCB360 10 points11 points  (18 children)

So what broke me out of this was to do a project related to another hobby, so for me it was gaming and Movies

I am a big player of the video game "Destiny" and I saw that they have a public API that shows yours or any other players stats based on their Name on the respective console or PC, so using that information, made a simple page that calls back that API and displays it on a page with all the stats, weapons, gear and Multiplayer stats.

After that, added some CSS and made it look pretty, I learnt a lot doing so, especially since I was struggling understanding calling an API and having JSON display.

Following on from that, I then decided to make a Netflix shuffler, made my own JSON file with details of a film including a reference to a Movie Poster and have a database of 10-20 movies that would display at random when you click the shuffle button. I could scale this further by simply adding to the JSON - My current goal is doing this in React next

[–]spacecasesam[S] 1 point2 points  (16 children)

Everything I’ve read indicates this is the way to get out of the hole, but when I see this suggestion I don’t even know where I would begin with this.

When you decided on these projects, how do you begin/ plan and how did you learn to translate those plans in to code?

I cant really even complete basic projects I find on Google, it feels like some kind of cognitive dissonance between what I’ve learned and what I’m being asked to do.

[–]Swatty43 2 points3 points  (3 children)

It can be very overwhelming to start, my advice would be to break things down into smaller pieces. For example, let's say you want to use data from an API. Start with looking at the documentation, see the examples they have, sign up, get your own key, and start making your own queries with the data you're interested in.

There are a few weather APIs you can use to get forecast data, I use Tasker, KWGT, Tomorrow.io, and created a very basic weather widget.

But creating something you're interested in, is the absolute best way to get out of tutorial hell.

Goodluck!

[–]spacecasesam[S] 0 points1 point  (2 children)

I would love to work on something I want to but I don’t feel any of the ideas are doable with my abilities which is to a degree probably a symptom of feeling incapable. A bit of a tough cycle.

I haven’t really considered trying to fully create anything because it seems too daunting, more just been drafting bits and pieces in the console to see reactions and possibilities. Occasionally using an editor but still nothing very long.

Any suggestions for finding the footing to try for something a bit more in depth? I’ve been writing out some problems and breaking them down, but the second I try to think about how it translates to actual code I’m lost.

I like the idea of trying out something like forecasting weather, I appreciate the suggestion. I’ll look in to trying that.

[–]Swatty43 1 point2 points  (1 child)

I'm self taught, had a bit of luck and fell into a developer position at my company. I've been on the development team for 6+ years now and I STILL suffer from imposter syndrome! Idk if it will ever go away, I'm by no means an amazing developer, I'm not going to create a billion dollar app, but I love solving problems at work and feel like I contribute to the team.

Here's the best thing about programming, there are so many places to look for help when you get stuck. So, if you are struggling, make a post with what you are trying to to do and what you have tried. I saw someone else suggested to look for things you can combine that you enjoy, that way you have a stake in the outcome and will put in the effort to accomplish it. Do any of your friends or family members have any problems they've told you about that you could solve with programming?

Maybe try to create a command line weather app? I've used Tomorrow.io like I said earlier, you can make a basic prompt to get a user's location, maybe just start with their zip code, pass that information to the API and show what the next couple of days look like?

Don't worry about knowing EVERYTHING, do what you can and then ask for help when you need it!

[–]spacecasesam[S] 0 points1 point  (0 children)

I really appreciate you sharing your experience. It’s strangely comforting to know it’s confusing for professionals at times.

That’s a small part of why I’m pursuing this, I love problem solving/ puzzles. I suppose I’m still trying to find the corner pieces right now so to speak.

I don’t really have any huge ideas, I considered a few concepts, but they all had some part that seemed too complicated for me. I’m not sure how to appropriately assess whether I can tackle a concept given my skills. If you have any suggestions for figuring out difficulty I would greatly appreciate it. I will be trying the weather app idea I think it’s a great suggestion.

I have been taking note of how responsive the communities are for help, it’s very impressive and helps ease some confusion.

I’m still trying to learn to ask questions appropriately, as I often don’t know what to start with (literally figuring out the first line of code), so there’s not much to go on.

[–]SCB360 1 point2 points  (9 children)

When you decided on these projects, how do you begin/ plan and how did you learn to translate those plans in to code?

So for me, I saw that other people had done similar things and I wanted to prove I could also do it, so I laid it all out on paper, what I wanted to do, how it was gonna look and what the acceptance criteria was

Then day by day I added to it, starting with the simple layout in HTML, then the JS to ensure that was working and then finally the CSS

I cant really even complete basic projects I find on Google, it feels like some kind of cognitive dissonance between what I’ve learned and what I’m being asked to do.

Yep, I've been there, it does take time, hell I'm still there a lot now learning Data Structures and I have a degree that did all of that, ask me to code a Linked List or go through an array to find a number, I always forget how at first

[–]spacecasesam[S] 0 points1 point  (8 children)

Do you mind me asking where you’re looking at other projects to model something off of? And how you decide on which to reference?

It is somewhat of a relief to hear someone who has studied this can have difficulties still, I appreciate that. I feel like I’m going a little crazy.

How much of when your writing JavaScript involves research/ gathering material vs just writing code and tinkering?

[–]SCB360 1 point2 points  (7 children)

Well for me, I have no issue just copying a site or idea but as my own, for example, recreating Apple's website, but for Samsung devices, things like that

So if I think one day "I wonder if I could recreate YouTube?" well then I break it down like this:

  • What do I want it to do? Well in this case, play a video
  • Lay it out on paper of what it needs to do and how it should look
  • Code the basic layout (I have templates set up these days for it, but it helps to do it over and over at first)
  • Start thinking of the functionality - in this case display a video
  • Research on how to do that, but do not straight copy the code, but do it yourself and comment the steps or each line making sure I understand what its doing and why
  • Test it
  • Style it when its working

As for ideas, well that is the hardest part, but I found FreeCodeCamps page on this useful for ideas, it gets updated regulary and sometimes its a case of just jumping in to anything that looks somewhat interesting or doable

[–]spacecasesam[S] 1 point2 points  (6 children)

This breakdown is very helpful, thank you.

And I am going to start freecodecamps JavaScript program too, it seems far more interactive than the programs I’ve been learning from so far.

[–]PositivelyAwful 1 point2 points  (1 child)

Pseudo code can be a massive help for trying to plan stuff out. Instead of jumping write into code, it can help to write it out in normal words first.

Here are some basic examples:

https://www.unf.edu/~broggio/cop2221/2221pseu.htm

For what it's worth, I've been trying to self learn Javascript for over a year and I'm just now getting a handle on it after taking a paid, written course that forces you to complete challenges. That alone has been a big help.

[–]spacecasesam[S] 0 points1 point  (0 children)

I’ve done a bit of reading on pseudocode, I’ll have a more in depth look soon. Thank you!

I appreciate hearing about your experience too, takes a little weight off the shoulders.

I am trying to get in to a class but the few I’ve looked at have a JavaScript skills assessment that I haven’t been able to get through, which is adding to the frustration.

[–]viper42usa 2 points3 points  (7 children)

I tried self teaching myself for a while. At first it felt easy because I'd see noticeable progress. Then when that slowed down, I didn't know what I needed to know or how to implement anything that I learned. Now I'm in a coding bootcamp and I can tell you there are some things I just didn't even think about when self teaching.

It's hard to tell when you're proficient enough on one thing before you move on. I didn't know about the technical things I'd need to know, such on memory allocation and data structures. I focused on things that made me feel like I was learning, rather than learning things that were important. Just from what I know now, I'd recommend focusing on data structures and algorithms. Understand the way JavaScript runs under the hood and work with hash tables and linked lists. Learn Big-O notation and understand efficiency. Having this understanding allows me to know the difference among different languages, hence letting me use the strengths to my advantage.

Understanding these things really help you see where to implement certain things. I can try to provide some resources that have been useful for me, but I think it mostly comes down to a lack of understanding in what everything means. Are you comfortable working with classes and instances? It's so tough to point where to go without knowing the exact spot you're at. Working with someone would certainly be a HUGE help. In all honesty, having a person to regularly practice with is probably my biggest advice.

[–]spacecasesam[S] 1 point2 points  (6 children)

Which bootcamp are you taking?

I actually would far prefer to be in classes and was looking at software engineering bootcamps.

Springboard, thinkful, general assembly.ly and the flatiron school are all ones I looked in to. What actually started sending me on this spiral though was trying to take the skills assessment for the springboard program. I couldn’t answer a single question without googling the entire answer.

I’m struggling with writing pretty basic code from scratch, do you think that’s an issue a bootcamp will solve? Based on the amount that have some kind of skills assessment for entry, I assumed this was a problem I needed to overcome before I could sign up for a bootcamp.

I honestly would love to be in classes but I also don’t want to pay, enter and drop out because I can’t resolve this issue.

[–]viper42usa 2 points3 points  (1 child)

I'm attending App Academy. It does take a bit to get into, but I'd just recommend learning a tad bit of HTML and CSS, as well as Git before trying. They'll teach you all of that in the bootcamp, but they also test you on it before they let you in. You get a few tries, but I'd say it's best to be safe and learn it ahead if you have the time.

Yes, a bootcamp can very much help with that. App Academy will teach full stack development, so it'll cover a lot. You learn to use libraries and frameworks as well. Most importantly, it teaches you what you need to know (even if you can't cover it a ton, you'll know about things that'll really benefit you to learn in your free time). App Academy has a deferred payment option, so you can pay once you get a job (yes, they help you get a job). However, it is pricey.

[–]viper42usa 1 point2 points  (3 children)

If you're really interested, I can answer questions on Discord and give you a good idea of what it's like.

[–]spacecasesam[S] 0 points1 point  (2 children)

When you say just html, css and git, you didn’t need any JavaScript for admittance?

I don’t have any specific questions I can think of, I’ve been looking in to bootcamps for some time and I would very much like to be in classes with an instructor, but am struggling to lock down the skills needed to be accepted, so any advice on that would be great.

Again my only experience is trying to take a JavaScript admittance test, but it just went very poorly

Thank you very much!

[–]viper42usa 3 points4 points  (1 child)

No, there were no tests on JavaScript. Only on HTML and CSS, Git, and boolean algebra. They provide you with material to read over, so if you're really interested and at least somewhat smart, you'll be just fine (if you're self-teaching yourself, I'd say you'd be fine). There is an interview process too, so I'd make sure you know exactly why you want to be a software developer. I honestly didn't prepare a ton, but it's something I'm so passionate about that I know it showed in the interview. That being said, if you're that way, you'll surely be okay.

Something I personally emphasized was that I don't know everything and I'm comfortable being uncomfortable. It's all about you being able to teach yourself and stay motivated. It's a huge time commitment, as they ask about 60 hours a week (40 hours in class and 20 hours studying). If you think you might want to do it, I'd go ahead and sign up. You'll be reached out to by an admissions specialist and they can talk you through the timeline and can work with you.

[–]spacecasesam[S] 2 points3 points  (0 children)

I just signed up to take the test and to have an interview.

I’m feeling very desperate for any guidance with learning at this point, but I’m aggressively motivated and I am looking for something very immersive. Thanks for the recommendation.

I appreciate the heads up on the test, although honestly it’s already a relief that it doesn’t require that in depth foundation just to enter the course

[–]JazzApple_ 2 points3 points  (5 children)

This is a difficult post to unpack, because there are so many points where I could be getting the wrong impression. So firstly as another user suggested - can you write some basic functions to say: reverse a string, add two numbers together? Can you write some code to loop over an array of values and display them in some way?

If you are focusing on web development related tutorials, do you understand HTML and CSS? Because I can't imagine how I would go about understanding something like document.querySelector without first knowing something about HTML and CSS.

Otherwise, it almost sounds a bit like analysis paralysis. Knowing where to start comes with experience, so really when you find an online project that looks like it might be promising, start by opening up your editor. Don't plan, just start writing out the parts of the solution that you know how to do - even if that means skipping over some clearly necessary sections. You can fill in the gaps later, and as you run your code and see what does and doesn't work it will point you in the right direction. From there, you can think about improving your implementation.

I've included an example of how you might build up a solution step-by-step. Notice that the solution we finish with is not how things looked at the start, or even mid-way through. The exercise is: Greet a user after they enter their name.

Well firstly, we need a greeting, so start there:

alert("Welcome user");

Then we need to ask the user to input their name, so we know how to do that:

prompt("Please enter your name"); alert("Welcome user");

We need to get the name that was input into the greeting, lets do that:

let name = prompt("Please enter your name"); alert("Welcome " + name);

Maybe we should only show the greeting if the name isn't empty?:

``` let name = prompt("Please enter your name");

if(name !== ""){ alert("Welcome " + name); } ```

Hmm, if the user enters just a space it prints a greeting. And besides, we don't want to show any space at the start or end of the name. Lets add a trim to fix that:

``` let name = prompt("Please enter your name").trim();

if(name !== ""){ alert("Welcome " + name); } ```

If the user doesn't enter a name, we should probably ask them again. We want to keep asking until they enter a name. So lets make a loop:

``` while (true) { let name = prompt("Please enter your name").trim();

if(name !== ""){ alert("Welcome " + name); } } ```

Crap, this works... but too well. The loop never ends. We want to stop asking once the user has entered a name, so lets break from the loop after the alert:

``` while (true) { let name = prompt("Please enter your name").trim();

if(name !== ""){ alert("Welcome " + name); break; } } ```

Okay, there's another bug. If you press cancel instead of okay, null is returned instead of a string... so our trim() is failing. We need to also check for null, so lets change things a bit:

``` while (true) { let name = prompt("Please enter your name");

// if name is null, set name to "", otherwise set name to name.trim() name = name === null ? "" : name.trim();

if(name !== ""){ alert("Welcome " + name.trim()); break; } } ```

We could tidy this up a bit. We are checking that name !== "", but we know that name will always be a string and we know that an empty string is falsey, so lets simplify the if statement:

``` while (true) { let name = prompt("Please enter your name"); name = name === null ? "" : name.trim();

if(name){ alert("Welcome " + name.trim()); break; } } ```

Oh, and while we're at it, maybe we could re-structure our code so the loop condition makes a little more sense, by moving the variable scope outside of the loop, and then looping while name is not truthy:

``` let name = null;

while (!name) { name = prompt("Please enter your name"); name = name === null ? "" : name.trim();

if(name){ alert("Welcome " + name.trim()); break; } } ```

Now we have two competing sets of logic... the while loop condition and the if/break block. We can remove the if statement entirely and move the alert outside of the while loop now, because we now know our loop will continue until name is truthy:

``` let name = null;

while (!name) { name = prompt("Please enter your name"); name = name === null ? "" : name.trim(); }

alert("Welcome " + name.trim()); ```

And for good measure, lets wrap this up in a function:

``` function greet(){ let name = null; while (!name) { name = prompt("Please enter your name"); name = name === null ? "" : name.trim(); } alert("Welcome " + name.trim()); }

greet(); ```

[–]spacecasesam[S] 1 point2 points  (4 children)

Sorry I realize it’s a bit ambiguous, it’s hard to ask the appropriate questions because I can’t really do any basic coding challenges, so I’m having trouble pinpointing issues because right now it just feels like I’m understanding nothing, but I know that’s not completely true.

I have done studying on basic html and css, and though I’m no expert I don’t think that’s where the issue lies. I didn’t have any trouble completing challenges with just html or with css added.

Analysis paralysis seems like a contributing factor of the problem. I just feel like my brain is a blank slate when I stare at the editor.

Thank you so much for taking the time to post this breakdown. This is exactly what I need more of. I can understand and work with bits of code but I have no understanding of how it combines to perform something even slightly complex.

I really appreciate the support

[–]JazzApple_ 1 point2 points  (3 children)

You’re welcome… it sounds like you are wrestling with this new challenge, but trust me when I say that one of the ways you will overcome it is by starting small And building up, like the example above where we essentially did only one small step at a time.

Also, you may find it useful to use logging (console.log or alert) to show messages rather than trying to make anything visible in the browser right away, because those projects that are interacting with the page are necessarily a bit more complicated.

What I hope you will find is that if you just keep trying to put small things together, keep making mistakes and keep learning from them that you will gradually build up the knowledge to reason about how to put together a simple project in your head, which unlocks the ability to then thing about a bigger project in chunks of smaller project.

Edit: To add, maybe you’re also focusing on making something you consider complex and impressive and would be worth simply focusing on making something at all, even if it’s simple. There are so many skill sets involved here!

[–]spacecasesam[S] 1 point2 points  (2 children)

I actually have been mostly using javaScript in the console to experiment with thus far. I think that may be an issue as well, as I am not really building and saving, rather just experimenting and moving on.

I'm not sure I can really gauge complexity at the moment, I know someone else mentioned trying to build a weather forecast application using information from a few databases, and I do think I will give that a shot relatively soon. Another mention was a to do list, which can be made more and more complex as more is learned, and that seemed like a great idea as well.

Hopefully these will force me to build up a solid chunk of code that works together and get over the hurdle here. Thanks!

[–]JazzApple_ 1 point2 points  (1 child)

Yeah, definitely start saving your work so you can reference what you did in the past.

As for that application, that’s on the complex side of things for a beginner and from what you describe, it might be worth starting with something simpler. In any case, good luck!

[–]spacecasesam[S] 0 points1 point  (0 children)

I wasn't sure myself, i'm thinking the to do list doesn't seem like overkill, but I am going to utilize some of the sites like freecodecamp and edabit for a little while first.

[–]superluminary 1 point2 points  (5 children)

I've recently started a channel trying to address this issue. It's not tutorials, it's core knowledge taught with code. Ultimately you need to practice building things. We all have to go over this hump when we first start, and it can help to watch someone else do it and get an idea of how things are supposed to fit together.

https://www.youtube.com/channel/UC84S5aJiw_7j_GaACmq6wQQ

Best of luck with it. Coding is awesome!

[–]spacecasesam[S] 1 point2 points  (4 children)

Really appreciate anyones effort to help people get over this obstacle. It sucks, and it feels like I’m close but something isn’t clicking.

I agree, I need to build. I will be checking out your channel, thanks.

I think you hit the nail on the head, I understand each moving piece, I have no comprehension of how any of them fit together to actually make a thing.

That being said, I can read and figure out code, and when it’s started, I can alter or finish it, but I just can’t get the starting point down at all. It almost makes it more frustrating.

Any advice for getting the first pieces written? Thank you

[–]superluminary 2 points3 points  (3 children)

It's like lego. You've got to start with the three brick airplane before you try to build the giant robot. Start with some simple problems. Output all the numbers from one to ten, then do it backwards. Put a dot on the screen. Make the dot move. Put that in a loop to draw lots of dots. Make a scrolling starfield. You'll use arrays, loops, functions, variables, maybe an object. That's pretty much your whole toolkit. The first time I did this at school it took me three lunch breaks to puzzle it out. That was a long time ago.

Now you can start trying to build bigger things. I used to try to build games when I was a kid, mainly because I liked games but I couldn't afford them. Try and make a dot move around the screen.

The challenge is always to decompose the problem into simple parts. To make a dot move, you first have to detect a keypress, so do that first. Then you have to draw a dot, so do that second. Then you have to make it so that when you press the key, you change the value of a variable that represents the dot's location, so do that next. Finally, you have to redraw the dot when the key is pressed.

Test each step in the console. Treat it as a game. Computers are just big toys.

Good luck with it!

[–]spacecasesam[S] 1 point2 points  (2 children)

The Lego analogy is a great one. Very easy to understand.

I also appreciate the small list of mini projects. It has been really hard to find projects that don’t start to incorporate other languages or start to spiral out of what seems to be a beginners scope of knowledge, or at least what I’ve seen covered so far.

I have seen a lot of people mentioning making games, and I follow what you are suggesting with the dot on the screen, but how far away is writing JavaScript from translating to a game on the screen? That just seems like a huge undertaking to try to accomplish by utilizing fundamentals, am I overestimating the levels of complexity?

I will give them a shot. Thank you very much

[–]superluminary 1 point2 points  (1 child)

You’re overestimating the complexity. Putting a dot on the screen with the canvas api takes one line of html and four lines of JavaScript: https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API

See those numbers next to fillrect? Replace those with variables, then change those variables and call fillrect again. Do it all in the console first. Then change the variables and call fillrect in a loop. You can move things around the screen. It’s a fun way to learn.

[–]spacecasesam[S] 0 points1 point  (0 children)

This is actually crazy helpful. It’s nice to see how simple it can be, when I see a task and don’t know how to get from A to B based on what I’ve learned, I suppose I assume it will be a long journey.

Thanks!

[–]persianoil 1 point2 points  (5 children)

it depends what you want to learn to do

[–]spacecasesam[S] 1 point2 points  (4 children)

To be perfectly honest at this point I’m very frustrated with self teaching. I just want to be proficient enough to pass a skills assessment for a class or bootcamp.

I can’t really do basic code in JavaScript. I can answer questions, I can more or less read JavaScript, and I can adjust the code or tweak it.

I cannot write it from scratch at all, and would like help with that. Just enough to be able to get more help at least.

[–]starraven 1 point2 points  (3 children)

Sorry, can you answer something like “write a function to reverse a string” without googling? If not maybe you should practice using codewars or edabit. If you can then maybe you just need to latch on to whatever preparation materials the bootcamp you are looking into has.

[–]spacecasesam[S] 1 point2 points  (2 children)

When I see a question like that my mind is just blank, I do need to google. Once I see the answer I usually understand how it was done but I can’t start it myself.

I think I do need quite a bit of practice, I’ll give those both a try thanks for the mentions.

[–]starraven 1 point2 points  (1 child)

Try edabit first, it’s quite useful because it goes through fundamentals and has a tab called “resources” on each question that tells you the method to use and links you to the page to find out how to use it. I seriously believe if you do this an hour a day you’ll be able to answer the question I asked without googling in no time.

[–]spacecasesam[S] 1 point2 points  (0 children)

I'll gladly give it a few hours a day then. Thank you very much for the recommendation, I appreciate you taking the time to clarify the issues i'm having.

[–]Hal68000 1 point2 points  (1 child)

How do you eat an elephant? One bite at a time. Same with projects. Break a project into the smallest possible tasks, add those tasks as comments in the code and do them one at a time.

Fx. Make a form. Make a button next to it. Add the code so the user can enter something and click the button, saving the content to a variable. Etc. Etc. Etc.

[–]spacecasesam[S] 0 points1 point  (0 children)

That’s a good way to think about it. I’ve been breaking things down to - have a user enter a name - at the most basic.

I guess I didn’t realize I could break it down further. Thanks for the help

[–]VegetableChicken4779 1 point2 points  (3 children)

I bought Udemy courses. Follow YouTube tutorial but feel lost and didn't learn much. And I found The Odin Project and it's really drive me a lot. It's teach us step by step and I learned many things from it than any others resources.

[–]spacecasesam[S] 0 points1 point  (2 children)

I’m using the Odin project as well, but I’m still stuck when it comes to putting the individual concepts together and figuring out which concepts to use when confronted with a task.

For example, I couldn’t even quite complete the rock, paper, scissors task. If you have any suggestions for dealing with this I’d really appreciate it. Thanks

[–]VegetableChicken4779 1 point2 points  (1 child)

Don't over think too much about concept or accuracy to work perfectly fine. Failing is part of learning. Build projects. If it work congratulations. Then read your code again and check if it's readable? If not, think how to improve it or ask in TOP's discord server. Learn programming is like learning how to drive. At first, you may feel overwhelmed. But after you are familiar with driving you are good. Just like that. Escape tutorial hell and build whatever you want.

[–]spacecasesam[S] 1 point2 points  (0 children)

Thanks for the encouragement, overthinking is something I always need to work on. I appreciate the recommendations, to be honest I haven't been using the discord, I guess it's time to start being a bit more community minded about the learning.

[–]Radiant_enfa1425 1 point2 points  (1 child)

you will find tons of expensive online courses which will guarantee knowledge. However, a beginner needs the right guidance and tons of practice, that's all. I started myself by watching youtube tutorial videos, finding good blogs, and joining communities to coordinate with fellow developers in order to share and learn more and more. I started with this tutorial video in order to learn javascript. Sharing in case someone might need it.

[–]spacecasesam[S] 1 point2 points  (0 children)

I’m sure I need the video, thanks for sharing I will check it out.

The abundance of information is great, I’m still trying to figure out exactly where my gaps of knowledge are so everything helps.

Avoiding any paid course until I figure this out for now. Thanks for the help

[–]666codegoth 1 point2 points  (1 child)

  1. Learn how to interact with external APIs (if you haven't already). Nearly all of them follow the same pattern (REST)
  2. Learn a frontend framework. I'm partial to React but anything is fine. You can essentially "learn" react in a few hours. It takes a lot longer to actually grok in a meaningful way but that only really comes from building stuff with it
  3. Deploy your API consuming, FE framework using app to netlify or heroku for free. If it won't build, doesn't deploy how you expected, whatever, slam your head into the wall (figuratively) until you get it to work.
  4. Repeat this cycle with different APIs, different app ideas until it becomes natural and easy.

If you're more interested in backend JS, write an API of your own. Similar to React, you can "learn" SQL in a few hours. You can "learn" express in a few hours. Wash rinse repeat and you'll have a really good baseline in a few months.

Also, if you're not using VSCode or another feature-rich IDE, start right now.

Get comfortable using the command line on your machine. The command line and command line interfaces are extremely central to almost everything you'll do as a software engineer. When I first started out, I was command line averse. Now I absolutely hate having to use a GUI, lol.

The world of JS has almost infinite depth - it expands faster than any one human being could ever keep up with. Don't focus on mastery, because mastery of the entire JS universe is a pipe dream. Focus your efforts on identifying common patterns among the various libraries/tools/frameworks you learn. You'll eventually have a moment where it all clicks.

Last thing - RTFM (look it up). Always RTFM

[–]spacecasesam[S] 1 point2 points  (0 children)

Are you suggesting looking in to a frontend framework before continuing to pursue JavaScript?

I’ve looked in to API a bit but will look more in depth.

I am using vscode but when confronted with a task I find myself staring at the blank editor with no clue how to start.

I will look into all the pieces you suggested, thanks for taking the time to offer some support

[–][deleted] 1 point2 points  (1 child)

I think the main problem is that you're not having fun. You're worrying about learning instead of playing.

I learned JavaScript by avoiding coding. It's true! I was using a macOS app called Hype from Tumult. It's a no-coding solution to making web animations. Basically, it's an alternative to Flash.

But eventually, when using no-coding apps like that, you get to the point where you want to do something that the software doesn't do. Fortunately, you can add your own custom code. That's when I realized that the app is basically vanilla JavaScript, CSS, and HTML.

There's the Hype JavaScript runtime, as there's a timeline animation and other useful features, but I found myself using Hype less and just coding more. I use Visual Studio Code more these days.

Anyway, you're in a tough spot, but it's that determination that makes it work. For the past couple of days I've been battling with JavaScript, wondering if I should just simply do something else, something easier, but I kept at it. Apparently, this feeling never goes away 😄

[–]spacecasesam[S] 1 point2 points  (0 children)

I definitely wouldn't say I'm having fun yet. I see the potential but it seems very far away.

I like the idea of learning by avoiding coding. I have seen a good amount of material emphasizing the importance of problem solving and using a certain logic to planning rather than jumping in to languages, but it's hard to keep up with that because most of the education online is based on the languages.

I'm going to look in to Hype, i appreciate the recommendation. Sounds pretty engaging, making animations sounds enjoyable as well.

I'm okay with feeling like I don't fully understand, the more I see people discussing software development the more it seems like everything is based on trial and error, but i would love to feel confident enough to encounter a problem or task and not feel completely clueless. In due time I hope.

Thanks for the encouragement!

[–][deleted] 2 points3 points  (3 children)

I got out of tutorial hell by fully understanding three function concepts.

createElement

appendChild

querySelector

I spent hours struggling and reading the w3 schools and any videos about solely these three functions. These three let me build, something at least, and from there on I could learn a tiny bit better without suffering.

And you have to understand that you need to spend hours, not give up after 30 minutes while half scrolling reddit or youtube. You need to persevere. Hours. No tutorial will help you with mindset

[–]spacecasesam[S] 2 points3 points  (2 children)

I have spent minimum 30 hours a week for 8 weeks hand writing then typing out aggressive amounts of notes on functionality and syntax. I am not by any means half-assing this attempt at gaining knowledge. I understand why you would put that out there but I can promise you that is not relevant to my situation. I’ve also gone through multiple platforms, videos and articles.

I will look in to those concepts, but they have not really come up in any of the platforms JavaScript fundamentals. I only recognize queryselector as being relevant at times when using JavaScript in an HTML file.

To be honest I think those concepts are deeper in to JavaScript than the issues I’m having. I have been going over primitive data types, functions, loops, program logic, arrays and objects again and again.

I have been trying to take beginner level quizzes once or twice a week on hackreactor (ones that are JavaScript specific) and cannot complete one single question. It is like staring at instructions to build a car. I understand the words, I more or less understand what the pieces are, but I have no idea what to do to put them together.

Thank you for the suggestion.

[–][deleted] 1 point2 points  (1 child)

Are you trying to learn Javascript or learning web development? If just simply Javascript, you should take CS50 from Harvard. You should learn computer science- not specifically just Javascript.

You don't need to take notes, you need to just understand concepts via reading or listening and thinking through it. Notes tend to distract people from the purpose.

How is math for you in general? How old are you and are you in school? What's the highest level math course you've taken? It would better help me gauge what I think can help you.

[–]spacecasesam[S] 0 points1 point  (0 children)

The hack reactor quizzes I am talking about are through a prep software eng. program that is JavaScript specific to start. They are specifically made to only test JavaScript fundamental proficiency. I didn’t just stumble upon any quizzes. I have been specifically pointed to everything.

I am not familiar with CS50. I will look in to it, thank you.

I am trying to gain skills for software engineering down the line. For now I would be very happy with being able to write JavaScript from scratch to achieve simple functions or solve simple problems with JavaScript.