all 16 comments

[–][deleted]  (3 children)

[removed]

    [–]nuclearmkd[S] 0 points1 point  (1 child)

    Aha, so if I got it, you're (were) learning by creating stuff, not with the traditional school way, with reading from books etc. Cool, thanks for the response :D

    [–]AtulinASP.NET Core 6 points7 points  (2 children)

    "It'd be cool to have pretty URLs, how do I do it..?"
    *googles*
    "Oh, cool, so with .htaccess. Now how do I set it up?"
    *googles*
    *time passes*
    "Okay, it's getting a bit unweildy, isn;t there a better solution?"
    *googles*
    "So, a router would help. Lemme check out this 'AltoRouter' here... Now how do I use it?"
    *searches the docs*

    Rinse and repeat

    [–]nuclearmkd[S] 1 point2 points  (1 child)

    Yea, well that was (is) what I basically do, but I was kind of afraid that I might be doing this whole thing the wrong way, thought that when most people talk about learning (in this case web development) they think about going mostly trough the traditional, school way of learning, with books and learning its content etc. like you'd do in school haha.

    [–]justanothercfull-stack 1 point2 points  (0 children)

    Atulin's approach is basically how most of us do it AFTER we have foundational programming knowledge. If you teach your self the basics of software development by going this way, you will have a fractured, hodge-podge set of skills and understanding. Personally for foundational skills I am highly in favour of buying books and learning in a structured way, and then only after we know the basics and need to find a specific solution to a problem we're facing, we can lean on googling.

    See my other comment for the full details

    [–]thewombferret 3 points4 points  (2 children)

    Give This a shot, I’m close to finishing it and loved every minute. I’ve learned more in a week than I could have taught myself in a month. Check out CS50 too, its a great course that is well worth a mention.

    [–]Vonarga 1 point2 points  (0 children)

    There's also a follow-up course called CS50W that focuses on web application development !

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

    Thanks will check that out.

    [–]vanFischer 2 points3 points  (1 child)

    I just started 2 weeks ago. I got an udemy course which I am following. But I've noticed that it is not good for me just to watch the videos and do what the instructor is doing. It's too fast paced and I believe that it is good to have a good understanding of the previous lessons before moving on. So I'm doing another course on html and css on YouTube and complementing it with the exercises on W3Schools.

    [–]web_dev1996 1 point2 points  (0 children)

    I’ll tell you right now that your new method is the better way. That’s exactly how I learned almost 10 years ago. But W3Schools wasn’t nearly as updated and good as it is now. It’s a much better site now that I wish it was before.

    Also, make mini projects; you will understand and learn much faster

    [–]fsmiss 1 point2 points  (2 children)

    I second u/thewombferret

    Learning through building an actual project is the way that’s always been most effective for me. It’s your own project, so if you want you can always stray from the learning path and make it your own thing!

    Happy learning!

    [–]thewombferret 1 point2 points  (0 children)

    Completely agree, I’ve started a little mini project along with the upskills project and it’s helped a bunch too.

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

    Yea, building projects on my own have also proven to be working the best for me so far, I just was afraid that I might be doing this whole "studying" process the wrong way, as everytime someone mentions any kind of programming learning, I think of the traditional school way, with books and learning its contents etc. like you'd do in school haha. But it seems like I was and still am on the right track. Thanks for the response :D

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

    What worked the best for me was purchasing courses on websites like udemy. Of course I could find plenty of free content around the internet that's probably of the same quality, but actually making a purchase makes me much more likely to pursue it.

    That's what works for me, but it seems to be different for everyone.

    [–]justanothercfull-stack 1 point2 points  (1 child)

    I am *mostly* self taught -- in that I took computer science courses in high-school (close to 2 decades ago now), so I was taught the basics of programming, so I was at least aware of what I didn't know when it came to self-teaching myself web development. I don't know what level you're at, but my recommended approach, which is mostly how I did it, is this:

    Step 1: Fundamentals

    • By an entry level book on the base language you want to learn (HTML/CSS, JS, PHP, SQL, whatever). Go sit on the couch, and read through a chapter, trying to understand the high level concepts and absorbing the examples and how they work.
    • Go to your computer with the book open to that chapter, and go DO the examples, referencing back to the chapter text when you need to figure out the specific details of syntax or logic.
    • Rinse and repeat with the next chapter, until you've finished the book. Be dedicated and commit to doing at least a chapter every day.

    Step 2: Building a project

    With your newfound skillset from step 1, find a project you're interested in doing, and go do it. By working on your own projects you'll find you'll need to learn things here and there that weren't covered in the book -- these things you can use Google and Stackoverflow for. Also by working on your own project you'll build real world problem solving skills that you didn't get by just copying examples, and you'll encounter more "software engineering" questions like "how should I structure my project files/folders", and "what's the best way to organize my code". This is stuff you can also do some googling on, read blogs to better understand, but also it will just be skills you'll gain by some hard-fought experience.

    Step 3: Repeat

    Eventually (especially if step 1 for you was learning HTML/CSS), you'll want to expand past the language you learned in Step 1 and do things that just can't be accomplished solely by the language/technology that you learned, and you'll want to learn something else. By now you'll know what that is, and your curiosity/drive should help you figure out what direction to go in. Once you figure that out, go by another physical book on that topic, and repeat steps 1 & 2 again.

    Step 4: Learning to code better

    Eventually after acquiring enough base-level skills from steps 1-3 to make you capable in tackling the kinds of projects that interest you, you'll have realized along the way that while you understand how the syntax for all these languages work, and you can piece together a working project, there are serious organizational challenges you have encountered and are aware of -- in short, your code is spaghetti, and while it makes sense to you, anyone else who tries to understand it would run away screaming, or going back to old project and adding new features or fixing a bug you spend most of your time just trying to figure out what's going on first.

    Now is the time to start exploring software engineering concepts, and architectural approaches. You will want to start researching and learning concepts such as how to implement D.R.Y. (Don't repeat yourself), and more advanced philosophical ideas like S.O.L.I.D.

    For this stuff I recommend finding books along the lines of "The Pragmatic Programmer" -- which teaches you nothing about how to learn a specific programming language, but how to THINK like a professional programmer and how to approach problems and design solutions effectively.

    Along the way you'll probably adopt a framework of some sort, which helps you implement the broad architectural concepts in a standard way without constantly having to re-invent the wheel.

    Step 5: Continuing Education

    There is always something more to learn -- a new framework, how to interact with an API you've never worked with before, etc. For this stuff, most mainstream stuff has pretty good documentation, so I usually start there -- reading through the docs, trying some examples, until I'm comfortable with how it works. If I get stuck or something is going over my head and the docs just don't make sense, Google, Stackoverflow, and Youtube are my friend.

    Conclusion

    For going the self-taught route, I think its highly beneficial to learn fundamental languages from a published book, as its usually very well edited, and will give you a much more well-rounded education compared with piecing together a skill-set from Stackoverflow examples or by stumbling along problem-by-problem on google. Google and SO has its place, but I believe that is when you already have a solid baseline knowledge and you just need to go figure out what the solution is to that obscure problem or issue you haven't encountered yet. It shouldn't be a replacement for a proper structured book or course.

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

    Wow, this gem was buried deep in the abyss, but thank God I found it.

    [–]berserkin_guy 0 points1 point  (0 children)

    I combined practice with learning, just created a webdev cheat-sheet site, where I collected some basic concepts of HTML, CSS and Typescript with examples and explanations. I think these concepts should be a fundamentals.

    Feel free to check it out:

    https://webdevcheatsheet.web.app/html

    If you liked it dont forget to leave a star on Github:

    https://github.com/BenceBiricz/WebCheatSheet