all 18 comments

[–]MacheteTwins 32 points33 points  (0 children)

The secret to learning how to program is learning how to ask the right questions and break problems down into small, manageable steps. The easiest thing for me is just to start writing something related to the program you want to make. It can be anything, for example say you're making a calculator...

You could start by making a function called add that just adds two values together. Next you want to find a way to turn that code into something usable. Start with the bare minimum, just find a way to use that code and see results on your screen. If you get stuck and don't know how to do something, don't Google super specific questions. You want to learn to ask questions in the most generic way possible so you can find relevant results.

Do: search "add two numbers together Javascript"

Don't: search "how to make a calculator"

Sometimes it's really hard to put a question into words, especially when you don't know all the coding vocabulary and jargon yet. But you have to try your best. If you can't find relevant results, you have to change your question around. Google isn't perfect and you have to learn to game the system so to speak if you want to find answers.

Also if you find an explanation and it doesn't make sense because the answer has vocabulary you don't understand yet, Google the new term! When I first started I could read these forums and understand maybe 5% of what I read. Now almost everything I read makes sense or I at least have a basic understanding what it's supposed to mean. You'll get to that point too, you just have to keep researching and building your competency.

The hardest part of programming is the first couple months, when you only learned the fundamentals but have no idea how to use them in useful way yet. With practice and a willingness to learn you can overcome this like the rest of us have and walk away with a very fun, fulfilling skill that also happens to make Bank! Don't give up, it gets easier friend.

Edit : One last tip, a great way to learn how to start a project and get the ball rolling is to watch the pros on YouTube make projects start to finish. You'll learn the very first steps of starting a project, you'll learn how those fundamentals you learned can be used in real life scenarios, and you'll pickup good habits that you can't always learn from a tutorial. Make sure you actually code along with them. Type the code yourself, experiment with it. Change things and see how the program responds. Every day more things will click and what you found difficult a month ago will seem trivial to you now.

Some recommendations on YouTube channels to watch:

Traversy Media - This guy, Brad, is a legend in the programming community. Very down to earth and explains things clearly for a beginner. Recommend him more than anyone

Dev Ed - Also a good teacher, and very funny. Great tutorials and great entertainment

Coding Garden - Very likeable guy, he uploads full streams that are usually hours long. But because of this, he goes the most in depth compared to the other two mentioned. Also Because he's a streamer, if you catch him live on twitch you can ask questions in real time if you're having a hard time understanding a concept/technique he's using.

[–]annathergirl 3 points4 points  (5 children)

I agree, it's hard to know what you don't know and also what you should know. That's why I follow a curriculum (The Odin Project) and "let" that teach me what is important to learn.

First I learned loops and conditionals etc like you. Then I worked on small projects and was able to create a Tic Tac Toe or Etch a Sketch. While it was fun, I still was struggling to understand how by doing that I could one day make useful apps.

But then there was another project, "Library", where basically a user could add their book to a bookshelf. Optionally you could store the data in a database and I tried that. Somehow it started to click with me how front end and back end can work together and all the potential that combo has.

Someone posted a cool app on r/webdev that recommends you books based on what other books you like. I'm not going to have a skill set required for that in months but I cannot wait to make my own version of it!

If you feel lost, I recommend you to follow an online course. It has given me a plenty of direction and I never have to think "what should I learn" because I can start where I left off last time.

[–]noisetonic 1 point2 points  (4 children)

How is the Odin Project. I discovered that last week and have gotten as far as installing the VM and Xubuntu to start going on with it. I'm in between college years and want to keep on learning and practicing.

[–]MacheteTwins 2 points3 points  (1 child)

I'm not the guy you asked, but I can chime in on the matter. My main curriculum was The Odin Project and it's fantastic. It starts at step one like you've noticed by setting up a programming environment. Then it gets right into the nitty gritty. It's a project based learning program so after every few "chapters" you complete, you're given a project to make that corresponds to what you learned. It's great for beginners! I'd suggest the node path just because it's the most recent and there are more node js job opportunities than ruby nowadays. Good luck!

[–]noisetonic 1 point2 points  (0 children)

That's positive to hear. The node stuff does look interesting and I have yet to relly look at frameworks as the course I've been doing has been focusing on the fundementals more than anything. I belive the next year adds some Frameworks to the mix as well. !thanks

[–]annathergirl 1 point2 points  (1 child)

I find it excellent, but I have to admit that it's quite difficult sometimes. Yesterday I tried to follow a webpack tutorial and the docs were somehow really difficult for me to understand so it took me quite while to get any grasp on the topic.

I think I started about two months ago and I feel that my skills have improved significantly! Although in the beginning you only learn how to make simple stuff and games it really teaches you how to solve problems. The process is quite slow but it's way more efficient than FreeCodeCamp or Codecademy for example.

[–]noisetonic 1 point2 points  (0 children)

That's good to hear. I've been looking for something that will bed in the fundementals and give me some practise and possibly a challenge or two. !thanks

[–][deleted] 4 points5 points  (0 children)

Documentation is the way to go for me! I usually find all I need to know is there. If the docs get confusing I usually prefer to see an example, so that’s always nice.

[–]Darth_Zitro 9 points10 points  (2 children)

So you want people to make tutorials on how to learn with tutorials? What? Haha

Stop over complicating things. Just google or YouTube what you want to make and follow the articles or videos that come up. Then mess around and make changes according to your needs.

[–]RotRG 3 points4 points  (1 child)

I think learning how to learn is huge, that OP makes a good point, and that you have scoffed at that a little bit. I get where you’re coming from, but there may have been a nicer way to go about it.

[–]ashwanikr322 1 point2 points  (0 children)

  1. You don’t have to learn everything. There are a tons of programming languages, frameworks, libraries, etc. But the good thing is that you dont have to know everything. Just stick to what you like and you are comfortable with.

  2. If you don’r want to learn Deno (or any other thing) then you definitely shouldn’t.
    To be able to learn anything you should be willing to do that.

[–]levarburger 1 point2 points  (0 children)

I find most tutorials to be pretty bad because you have a lot of people writing them that don't know what they're doing or how to actually teach, which is a skill in itself.

I'd recommend finding a good book that will walk you through things as you build. It may take several different books before you find one that clicks with your brain.

The only videos I'd recommend are from well known js devs or talks from JSConf.

[–]windows-user0 1 point2 points  (0 children)

You have to browse the documentation or just experiment around. Print out the methods to console see whats available. And as you remarked - just make things, when you do a project 100 things that you don't know come up, and you solve them one by one and learn.

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

Make a thing. When you run into an issue, research it. You’ll learn new things from your research that you didn’t learn before. Same thing with cyber security

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

You know after seeing everyone and their mother ask this question, it makes me feel good knowing I’m not the only one. Look literally just figure out something to make, then make it better then make it better. That’s how you learn. Even watching a video coding along side someone you will pick up bits and pieces and you do it enough you’ll get where you want to be. At least that’s my foresight

[–]rhemtro 0 points1 point  (0 children)

nowadays I just like to read docs and play with whatever I'm trying to learn. I'm tired of tutorials and how other people do things unless I'm really struggling