Advice on how to switch over to web development with previous software development experience
Hi! I'm pretty new to software development - started out with Lua in Roblox Studio, moved to Unity where I picked up some C#, and then got into Flutter w/ Dart. I've been playing around with my home server too, so I get the basics of how websites and the internet work.
I'm looking to dive into web dev mostly for fun and to add another skill to my skill tree. Right now I know a bit of HTML and CSS, but no JavaScript yet. I've got some stuff I definitely want to try out:
- TypeScript (seems cool)
- React
- Tailwind CSS
- Three.js (really want to make something with this)
But I'm also super interested in backend work too - honestly I'm all in to learn everything I can about web development since it seems like a fun space to explore. I'm just a bit confused about where to start.
6 Replies
You need to find something that is both fun for you and challanging at the same time.
I did some small stuff. But my first project(s) where I learned most of what I know of typescript and javascript ecosystem in general. Was making discord bot in discord.js I did that for longer than year probably. And for me, it got me through most of the basic stuff, because I had to learn more, if I wanted continue to expand but the steps where simple enough.
First I had one big .js file but that started so be challanging and confusing so I splitted it into multiple files but now vscode didn't had proper intellisense so I had to learn typescript. And so on.
So you need to find something to be both fun and something that doesnt have crazy learning curve because that would get you discouraged. I suggest start with learning the basic javascript the syntax you can do that ether in web or in nodejs than start learn the basic nodejs and web specific apis for web working with dom for node try to built simple cli tool. On web you can try to built a todo app with pure js.
Ones you do that you can continue on making game using canvas since you already now game dev it would be simple for you because you wouldn't need to figure out the game stuff. By this time you can start learning about classes and multiple files.
Ones you get that you start to learn about rest apis and make a project that both connects nodejs and web some chat app after you do that you can try to make it real time using websockets.
And ones you got good undertanding of ts and how to built stuff you can start learning react because without proper understanding of js/ts it will be very hard to understand what the hell is happening. I can't help you with that very much, because I am a vue guy. But you should try to make some of your older pure js projects in react.
I would also suggest to keep all your projects saved somewhere so you can look at older code and see how to improved and you can even that try to do the same stuff with the new knowlage and you also can try refactoring your old code.
And about the tailwind? I thinkl it's quite ease every time you built something try to make afterwards or if it is something larger while you develop it look nice and every time you want to do something just google how to do it in tailwind don't try to understand tailwind in it's all complexity in the start just watch some quick one video quick start guide and don't bother with settings up your enviroment just use the cdn and ones you get into react it will be more easier to set tha whole built chain
And the discord.js is actually quite fun so if you can't figure out what to do I personally would suggest that because you can then progres to DBs to store some data you can make simple admin panel with login users and with connection to discord like button that will send a message or managing welcome messages.
I think I'll definitely start with creating a discord bot, as it's much more appealing to my functional prog brain so I can get a hang of the syntax.
But should I start the with the discord bot or start with learning js syntax w/ web or node js
I would watch a crash course on JavaScript like this one https://youtu.be/Zi-Q0t4gMC8?si=qYmEiV7tVDnOaLKh (I didn’t watch it that’s just first that look nice)
freeCodeCamp.org
YouTube
JavaScript Course for Beginners 2024
Learn how to use the JavaScript programming language. This beginner's tutorial will teach you all the basics of JavaScript and also includes quiz sections.
Code for course: https://github.com/stevenGarciaDev/javascript-for-beginners-notes
Course developed by @StevenCodeCraft
Steven's LinkedIn: https://www.linkedin.com/in/stevengarciadev/
⭐️...
And js syntax is the same for node and web it’s just the apis that are different. in my opinion it is easier to learn with node because you don’t need to understand stuff around the web like how and when is the js loaded
Thanks for the help!! I'll definitely get to reviewing the resouces!
Honestly, web development is very broad and will most likely include something that interests you.
I'm currently a full stack developer and I found coding bootcamps to be boring, and kinda useless. Sure they can help you to some extent, learn the syntax of the language, quirks of JS (Theres so many I doubt one can uncover all of them in one lifetime), tech stacks etc etc.
But that's boring and would most probably make web dev seem more mundane than it actually is.
I would recommend you take a progressive approach. Dont try to make an entire app in one go. That never helped me. Instead, start small, almost laughably small. Simple HTML files with some CSS flair. Familiarize yourself with the DOM because if you dont, it will give you headaches. Trust me, getting a hand of the DOM, how it is laid out, what relations can be formed, how can it be manipulated will give you an advantage.
Once you can create basic web pages, try doing something more complicated and very soon you'll realize why you need JS. What a lot of coding bootcamps miss out on is the why. When you are limited by HTML and CSS, you'll have an incentive to learn JS. Incentives are really important and one as big as not being able to make complex apps is a pretty good incentive.
Dont spend the time learning every JS function there is. Learn as you need to learn. Need to manipulate the DOM? Learn how to do that in the JS. Need to style something after the fact, learn how to style with JS. Small baby steps will help you out more here.
When developing your app, you'll soon realize that vanilla JS is CLUNKY. Everything you need to do, takes soo long and is absolutely tedious. You'll soon find the solution, Frontend frameworks. I wont really point you to any one. You basically cant make a wrong decision with the choice of your frontend framework as they are all excellent. Choose one you like, and enjoy using.
Soon you will realize that even with all the power at the tips of your fingers ( literally ) things
are clunky. when writing code, autocomplete is limited, you cant safely check if the variable has the correct type or not, as your project grows, problems show up more often and you now spend more time fighting JS then writing new code. That is when you will discover TS. the solution to all your problems
the point that I am trying to make is learning to code is one thing, understanding your code and how to make good choices is another. When you learn things as you need to, you retain them for longer, you may occasionally want to reinforce what you know by searching for better solutions. Dont be afraid to try new things and Good luck!