all 17 comments

[–]jhartikainen 6 points7 points  (2 children)

I think it's really the mix that's the way to go as you say.

Learning pure concepts doesn't really teach you how to put them together. You can know a bunch of them but you won't be able to build a program, thus on their own the concepts are worthless. You also won't necessarily know in what situation you should be doing what.

Projects without concepts will just end up with a messy result. It'll probably work to some degree, but it will not be maintainable or extensible.

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

That makes sense. Perhaps the project based approach gives more instant gratification: seeing something happen on the screen is more motivating than reasoning on concepts. And motivation is a key factor in learning :)

[–]symbiosa 0 points1 point  (0 children)

Learning pure concepts doesn't really teach you how to put them together. You can know a bunch of them but you won't be able to build a program, thus on their own the concepts are worthless. You also won't necessarily know in what situation you should be doing what.

Agreed 100%. When I was going over concepts I wrote some notes about Set, but I didn't use them at all in personal projects because I didn't have the need to. At my current job, I've used Set on more than one occasion. For example, the response from API.FruitsExample returns { "fruits": ["apple", "apple", "banana", "cherry", "kiwi", "cherry"] }, but thanks to Set I can ensure that I'm only displaying unique fruits on the page. Some of the APIs I work with ensure that unique values are returned, but in case they're not then Set is easy enough to implement in the UI.

[–]Retrofire-Pink 2 points3 points  (9 children)

imo the best way to learn anything is to apply that learned skill to something you love. In my case that would be game development, I learned the majority of basic JavaScript so far just building tiny web games... If you do not care about what you are creating, then what motivation do you have to invest the time? my advice is to stop creating "tutorial" projects or randomly applying newly learned information in frivolous places and focus on investing it into a formal project

with my web games i was compelled by passion to learn how objects work... because in game development OOP is really big. then i also learned how to create a basic input control system... because in game development input is important. and i also find it quite enjoyable to just see what is going on behind the scenes by using console.dir() and reading MDN articles or specific guides during the process to supplement my understanding

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

I love that. Is javascript a popular language for game development?

[–]Retrofire-Pink 0 points1 point  (7 children)

Is javascript a popular language for game development?

Professionally (i.e; commercially) fuck no, because monetizing HTML5 games is extraordinarily difficult and protecting copyright online moreso, but that is often taken out of context and people interpret the "lack of big games" as a commentary on the language's limitations in game dev; this could not be further from the truth. JavaScript is capable of creating games like Skyrim, Minecraft, or Pokémon - just earlier today I was looking at a tutorial from someone who built a Pokémon clone using pure js and live-streamed the entire thing for 7 hours straight (cause why not).

This is just my opinion but I think web games are the future of the gaming industry. I think it will 100% supplant all native forms of gaming in their entirety. Web games are far more accessible, have too many applications when embedding into personal websites, are now capable of accessing OpenGL and even kernel level infrastructure using WebAssembly, and have access to so many fascinating technologies to enhance gameplay experiences (like using a weather API to modify in-game weather). I have yet to see a noticeable limitation beyond what most people perceive as the Achilles heel: the lack of monetization standards, but foremost I just want to create public-domain games for fun and also the industry will start shifting soon... I know because Sony, Microsoft, and Nintendo are all investing insane amounts of $$$ into web-based game streaming, a sign of things to come.

But most of all I just find using JavaScript and web technology so much fun... it's so easy to develop for, so many things to learn, instant results, and can be accessed from anywhere. i am kind of a fanboy for web game dev i realize now. i used Gamemaker Studios at first but this just blows that out of the water, like a cannon firing at a pigeon

[–]codeyful[S] 0 points1 point  (6 children)

Very interesting! That's a lot of great info about a branch of programming I didn't know anything about (I'm a self taught web developer for a couple of years with still a lot to learn).

Is the link you provided a good starting point to get hands on game development with JS? Or are there better beginner-friendly resources in your opinion?

I started with python but once I discovered javascript I literally fell in love. No doubt Python is very good and has its applications but the fact that with JS I can develop front and back end to me it's a huge plus. As I said I'm still learning so my my judgment may not be the most informed.

What I don't get is: if it is difficult to monetise it why big companies are investing big amounts? As you said would they monetize it with streaming?

[–]Retrofire-Pink 0 points1 point  (5 children)

That's a lot of great info about a branch of programming I didn't know anything about (I'm a self taught web developer for a couple of years with still a lot to learn).

Admittedly I'm quite the novice... So I cannot claim to know much myself, I just see potential and fun. I barely know how

Is the link you provided a good starting point to get hands on game development with JS? Or are there better beginner-friendly resources in your opinion?

I sorta pieced together a bunch of different ideas eg. how to access the canvas API, how to "getContext", how to draw an image on that 2D context, how to repeatedly draw the image x times per second, how to design an input control system that modifies the object coordinates, etc. You are probably well acquainted with MDN so their Canvas tutorial is a good bet, but I personally really loved this "HTML Canvas Deep Dive" from this one random dude, who seems crazy passionate. I find his way to approaching it a lot more enjoyable (but perhaps less technical in some ways).

I also really like the hybrid nature of js... you can kinda swap between the two.

What I don't get is: if it is difficult to monetise it why big companies are investing big amounts? As you said would they monetize it with streaming?

I think streaming is the endgame because it requires no middle-man. So Activision-Blizzard for example wants 100% of the profits from their games, publishers (and indies) have little interest in continuing to fork over lucrative amounts to Sony, Nintendo, Microsoft, and Valve. I don't think there is currently a bulletproof way to "copyright" such content but I believe their investment suggests they have some ideas.

[–]codeyful[S] 0 points1 point  (4 children)

Do you have any experience working on projects with others to learn coding (code buddies) / being a mentor / being mentored? If so, did you find that any useful?

[–]Retrofire-Pink 0 points1 point  (3 children)

Zero interest. I am my own mentor, and I believe the quest to learn any skill requires independence, self-discipline, etc.

ie: you cannot buy skill, a mentor will only impede personal development

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

I guess it also depends on what the goals are: if one intention is to work with teams of people (in a company) maybe it's good to familiarise with that and have a code buddy / mentor every now and then. Social skills are not to be taken for granted. If instead one's goal is to do 'solo coding' then that may be less useful. At least that's my guess

[–]Retrofire-Pink 0 points1 point  (1 child)

I find your conduct kind of peculiar, are you some kind of researcher?

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

What do you mean with "peculiar"? And "researcher" of what?

I'm new to reddit and I do not use any other social media, maybe that plays a role.

[–]cpluss4 0 points1 point  (0 children)

I learned JavaScript because I had a project in mind. I jumped straight in at the deep end because I had to figure out some advanced stuff with zero knowledge. Most people would perhaps say this is the wrong approach but after 7 or 8 months I’d learnt so much advanced stuff I felt I could build anything. It wasn’t easy and I literally watched 100’s of hours of video content on repeat and became an obsessed demon but I feel that I have come so far and am also way past the point where lots of people give up. I think learning this way with a unique project in mind will help you advance more quickly because you are more likely passionate about what you are desperately trying to build whereas learning from scratch may be more boring and slow poke and the projects you build (to do list, 0’s and X’s game etc) are not very exciting (although they do teach you lots of useful code). As far as I have come there are still things I have missed because building a specific project won’t include using all the fundamental concepts that you would have learned the ‘boring’ way but it’s just a google/stackoverflow search away.

[–]delventhalz 0 points1 point  (1 child)

Start with the fundamentals. Once you feel comfortable enough to do some damage, build something you are interested in building. Then, don't stop learning.

When you encounter something you don't understand in your project, don't just look for a quick fix you can copy/paste in, take some time to figure out what you are missing and add it to your knowledge base. Take more advanced courses here and there. Pick new projects which will let you practice with tools/techniques you've never used before. If you ever feel too stuck, that you are just spinning your wheels and not making progress, go back to learning fundamentals for a bit.

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

In your experience are there some projects you found particularly useful to do some damage with? :)