Jump to content

How much does it take to learn programming?


Recommended Posts

Hello guys,

First thing: i am not a Js programmer so after i knew that C2 doesn't allow commercial use so i have made a decision to learn Js.

I have few questions:

How much time/effort does it take to learn Js?

do i need anything beside a text editor and a browser? Would be great if you mention what you use.

Where to learn Js?

Cheers,

Hadzy Hayman

Link to comment
Share on other sites

Hi, 

As mentioned in a previous topic , If you are not working with tools , you will find it helpful to learn and master html , css/css3 and javascript.

start with www.w3schools.com

 

Although this is no matter I could estimate for sure , Finishing the html tutorial would take a couple of days , and a couple more days to take your time playing with it, Learning css will be no different , and as you design some websites or stuff with html (just for the sake of learning and playing around) , you'll get to find more about css attributes when you need them respectively (because there is no chance you'll know everything from the first tutorial).

 

And while you're doing this and that and starting to form something you'd call a website , take a look at the javascript tutorial , Which won't be much more difficult , especially if you have a small introductive background to programming (which I'll assume you do , because you already learn a thing or two about the basics of VB.NET in prep and high schools in Egypt) so that will give you a little push at the start, but Take your time in reading these tutorials , especially the javascript tutorial.

 

Now after playing around with JS and feeling comfortable about the kind of knowledge you have in , start using in it to create simple stuff like forum checking or moving elements dynamically, And at this point start reading about the HTML5 canvas element and how it's used  , and make your first "game" (of course it won't be a game , the first thing I've ever created with html5 canvas was a small game where you just move a block with the arrow keys , and I used stack overflow and google for half the code if not most of it)

 

You might want to check what tools people use to extend JS though , Creating your own complete engine can be rather daunting (and most likely useless), Many frameworks and libraries are out their to extend JS and help make apps faster (I've seen they also have one here in the forum called phaser.js , never tested it though) , most of which is free , take a look , and see where it takes you. Using some experience and reading some books could be helpful, or you could just do these stuff , and based on your own liking choose what fits you , and master that.

 

Note: I'd still suggest learning the html , css , and javascript w3schools tutorials before doing anything , even if you decide to grab some book and follow it, knowing them will just unlock many vague clauses , and they are just worth learning.

Link to comment
Share on other sites

Do not, I repeat, do not start with w3schools. In fact you should never visit that sight, ever. More info: http://www.w3fools.com/

 

If you want a good place to start learning, go to http://www.codecademy.com/, and for a reference (and tons of tutorials) use the MDN: https://developer.mozilla.org/en-US/

 

The Web Fundamentals is a great track to start on, then try to complete the JavaScript track, followed by intermediate JavaScript Guide on the MDN.

 

I started in game programming by writing a game engine, rewriting it when I learned what I did wrong, and rewriting many times again. The only reason I know web gaming and WebGL concepts is by making the lowest level I could first, so that I could grasp it. Then, after I had a low-level understanding I could effectively use higher-level libraries.

 

Good luck!

Link to comment
Share on other sites

I started in game programming by writing a game engine, rewriting it when I learned what I did wrong, and rewriting many times again. The only reason I know web gaming and WebGL concepts is by making the lowest level I could first, so that I could grasp it. Then, after I had a low-level understanding I could effectively use higher-level libraries.

 

Good luck!

 

When you wrote your own engine, did you read about how other engines worked? Or did you just write what worked for you, and ignore convention?

Link to comment
Share on other sites

w3schools is single WORST website on earth. It is just full of crap.

 

By your question I see you are totally new to programming itself.

I highly believe you can't just learn programming like magic. This would be at least work of months and lot of practice. You have to choose a good language to start with like C. I mean it wouldn't be like learning driving, but more like learning maths. You have to start with good language and I think C would be smartest start as much of the most used language owe there syntax to it. Start with nice good quality books.

 

And yes, it would really take a effort to learn programming. On an average people take over a month to learn to do something useful in C even after taking professional classes, given they are totally new. So I guess learning C, HTML, CSS, JavaScript, etc. would take over 6 months. And mastering them may take more. Then you have to learn a good game engine and work with it well. Then you have to learn to do good with graphics if you aren't willing to buy art assets.

 

If you aren't decent/above average in maths with ability to tolerate books, I suggest you invest on C2 or GameMaker. At $125, Personal license of C2 is insanely cheap for being a high level easy to use game creation tool with wide range of exports.

Link to comment
Share on other sites

When you wrote your own engine, did you read about how other engines worked? Or did you just write what worked for you, and ignore convention?

 

I read a lot of other engine code. I didn't look at engines outside my environment though (ie I was writing a js engine so I didn't look at Flash engines).

Link to comment
Share on other sites

w3schools is single WORST website on earth. It is just full of crap.

 

By your question I see you are totally new to programming itself.

I highly believe you can't just learn programming like magic. This would be at least work of months and lot of practice. You have to choose a good language to start with like C. I mean it wouldn't be like learning driving, but more like learning maths. You have to start with good language and I think C would be smartest start as much of the most used language owe there syntax to it. Start with nice good quality books.

 

And yes, it would really take a effort to learn programming. On an average people take over a month to learn to do something useful in C even after taking professional classes, given they are totally new. So I guess learning C, HTML, CSS, JavaScript, etc. would take over 6 months. And mastering them may take more. Then you have to learn a good game engine and work with it well. Then you have to learn to do good with graphics if you aren't willing to buy art assets.

 

If you aren't decent/above average in maths with ability to tolerate books, I suggest you invest on C2 or GameMaker. At $125, Personal license of C2 is insanely cheap for being a high level easy to use game creation tool with wide range of exports.

 

I agree to that ..

I have went to W3Schools and i don't think it's an easy way to learn something hard like coding .. I say CodeAcademy is way better as i use it.

Maybe C will be help .. When i finish learning Js and finish learning HTML/CSS i'll go find a good book about C.

 

You can use the Personal Edition for commercial purposes, no ?

 

Yes, But i haven't bought it.

 

Do not, I repeat, do not start with w3schools. In fact you should never visit that sight, ever. More info: http://www.w3fools.com/

 

If you want a good place to start learning, go to http://www.codecademy.com/, and for a reference (and tons of tutorials) use the MDN: https://developer.mozilla.org/en-US/

 

The Web Fundamentals is a great track to start on, then try to complete the JavaScript track, followed by intermediate JavaScript Guide on the MDN.

 

I started in game programming by writing a game engine, rewriting it when I learned what I did wrong, and rewriting many times again. The only reason I know web gaming and WebGL concepts is by making the lowest level I could first, so that I could grasp it. Then, after I had a low-level understanding I could effectively use higher-level libraries.

 

Good luck!

 

Good thing to be said by lots of people .. It's the hardest way to learn coding...

I advice all the readers to go to CodeAcademy as other said .. 

I'll check the MDN and the Js track

 

Hi, 

As mentioned in a previous topic , If you are not working with tools , you will find it helpful to learn and master html , css/css3 and javascript.

start with www.w3schools.com

 

Although this is no matter I could estimate for sure , Finishing the html tutorial would take a couple of days , and a couple more days to take your time playing with it, Learning css will be no different , and as you design some websites or stuff with html (just for the sake of learning and playing around) , you'll get to find more about css attributes when you need them respectively (because there is no chance you'll know everything from the first tutorial).

 

And while you're doing this and that and starting to form something you'd call a website , take a look at the javascript tutorial , Which won't be much more difficult , especially if you have a small introductive background to programming (which I'll assume you do , because you already learn a thing or two about the basics of VB.NET in prep and high schools in Egypt) so that will give you a little push at the start, but Take your time in reading these tutorials , especially the javascript tutorial.

 

Now after playing around with JS and feeling comfortable about the kind of knowledge you have in , start using in it to create simple stuff like forum checking or moving elements dynamically, And at this point start reading about the HTML5 canvas element and how it's used  , and make your first "game" (of course it won't be a game , the first thing I've ever created with html5 canvas was a small game where you just move a block with the arrow keys , and I used stack overflow and google for half the code if not most of it)

 

You might want to check what tools people use to extend JS though , Creating your own complete engine can be rather daunting (and most likely useless), Many frameworks and libraries are out their to extend JS and help make apps faster (I've seen they also have one here in the forum called phaser.js , never tested it though) , most of which is free , take a look , and see where it takes you. Using some experience and reading some books could be helpful, or you could just do these stuff , and based on your own liking choose what fits you , and master that.

 

Note: I'd still suggest learning the html , css , and javascript w3schools tutorials before doing anything , even if you decide to grab some book and follow it, knowing them will just unlock many vague clauses , and they are just worth learning.

 

I'll .. but not in W3Schools ...

 

Thanks all :D Hope others get use of this.

Link to comment
Share on other sites

Yeah I just have to defend w3schools here and now , since all that crap being said about it being the worst website on the internet is unfair, The site is basically sufficient, The content may not be as neat as it meets codeacademy or mozilla developers , However I've always thought of it as the industry standard (even though it's not official).

 

A topic or too about w3schools being troublesome won't change that , Even if some (or most) of the information in that topic are relatively true, I won't trust a domain named w3fools as being a good web developer want to keep others from the w3schools trap, even though they might be.

 

About w3schools , I'll tell you again to learn its tutorials for what I've mentioned above : html, css and JS basics , I'm not telling you to learn everything from it , but after you've read these tutorials you'll have a basic background and you will be able to build stuff by yourself , and while doing that you will use google to search for a few or a lot of things , and you will refer to mozilla developers and other sites , Also codeacademy IS good , I just don't see the reason of the massive attack  against w3schools , I learned everything from there (well not everything , the basic knowledge) , They will be sufficient , What is wrong though is only sticking with w3schools , and not trying any other community based websites.

 

You will make use of many sites to learn some tweaks and tricks , like mozilla developers , css tricks , and codeacademy ( I am pretty sure I've suggested code academy before to learn JS) , And you may find stackoverflow helpful a little or a lot bit, and the more you work the more you gain knowledge.

 

I'm not writing any of the above to alter either of your choices of using or not using a specific site for learning , And I'm pretty sure you will not refer to w3schools after all these warnings above , But I thought I would defend the site, And that's pretty much it. 

 

 

Edit: and by the way , do not waste your time on learning C , unless you are looking forward to using it , C is a huge language and it will take a lot to learn its basics not only to master , And if you aren't creating anything with it at all , Don't learn it , It's nothing of use to html5 development.

Link to comment
Share on other sites

One important thing you should keep in mind: Making fun games has nothing to do with programming, I've been programming for years with many languages yet it doesn't mean I will make fun games to play, to make fun games you need to make lot's and lot's of games. So if you want to make better games, sticking with Construct2 or GameMaker might actually be better than learn programming in JS, because in your case you will make games faster this way.

 

That being said, if you find your self in love with programming then go ahead a learn JS.

Link to comment
Share on other sites

Yeah I just have to defend w3schools here and now , since all that crap being said about it being the worst website on the internet is unfair, The site is basically sufficient, The content may not be as neat as it meets codeacademy or mozilla developers , However I've always thought of it as the industry standard (even though it's not official).

 

A topic or too about w3schools being troublesome won't change that , Even if some (or most) of the information in that topic are relatively true, I won't trust a domain named w3fools as being a good web developer want to keep others from the w3schools trap, even though they might be.

 

Unfortunately the problem with w3schools was never that it was unorganized; the reference was blatantly wrong in many cases.

 

w3fools was started to list out all the reference points that were wrong in w3schools.com, eventually the list got so big it was cut down to just a general warning. As far as it being the "industry standard" that is completely false, and frankly ignorant. The W3C creates the technology specifications, which are the industry standard. The MDN is created based on the W3C specs and edited and developed by the community of developers at large. Mozilla is one of (if not the) most active organization within the W3C and is directly responsible for many specifications you use everyday.

 

w3schools.com is a business who does their best to get to the top of google in order to make a profit, not to provide accurate documentation, which is evident by their lack of response to the many campaigns (some I have been a part of) to get them to update their problematic areas. It is a measurable fact that the MDN has not only more robust, and agile documentation; but is a more trustworthy source. Whther or not you like the domain name of w3fools, it was created by engineers with more years of experience with this technology than you have been alive; you would do well to take their advice.

 

Edit: and by the way , do not waste your time on learning C , unless you are looking forward to using it , C is a huge language and it will take a lot to learn its basics not only to master , And if you aren't creating anything with it at all , Don't learn it , It's nothing of use to html5 development.

I can tell you are someone who never took the time to learn a language like C. It most definitely has an effect on everything you do in programming, because anything you write in a high-level language will generally find itself transforming into syscalls and code that is either written in C or closely tied to C libraries. To be able to fully understand the implications of your high-level code, you *must* have an understanding of the low-level translation that is taking place. Without the understanding of static typing, manual memory management, branching, and other basic concepts you cannot fully comprehend what your high-level code is doing.

 

You can be effective as a developer without knowing what happens under the hood, but you will will plateau quickly.

 

Hopefully you will head some of the advice given on this topic, I am done here; but I wish you good luck. Feel free to look me up on other channels if you need help with any projects.

 

Good Luck!

Link to comment
Share on other sites

 I can tell you are someone who never took the time to learn a language like C. It most definitely has an effect on everything you do in programming, because anything you write in a high-level language will generally find itself transforming into syscalls and code that is either written in C or closely tied to C libraries. To be able to fully understand the implications of your high-level code, you *must* have an understanding of the low-level translation that is taking place. Without the understanding of static typing, manual memory management, branching, and other basic concepts you cannot fully comprehend what your high-level code is doing.

According to this I should learn assembler. Nope. 

Much more important are general design patterns. I doubt he will ever have to write extra optimized code taking into account lower level functions, while well maintained code is a must everytime.

So once again, language is just a tool, what you need depends on task and for browser game you need to know JS not C. C will just confuse you because of its static nature and no OOP.

Link to comment
Share on other sites

According to this I should learn assembler. Nope. 

Much more important are general design patterns. I doubt he will ever have to write extra optimized code taking into account lower level functions, while well maintained code is a must everytime.

So once again, language is just a tool, what you need depends on task and for browser game you need to know JS not C. C will just confuse you because of its static nature and no OOP.

I 100% disagree, as some who knows assembler it is amazing helpful to write effective code. Language is a tool, but it helps to know how your tool works to effectively use it creatively.

Link to comment
Share on other sites

So basically you are saying that one who wants to drive a car needs to know how to build its engine? Of course that would help and is an advantage, but starting from it? nah. Until you would learn how engine works I would already finish travel around the world. twice. And this is the point of this conversation.

Link to comment
Share on other sites

So basically you are saying that one who wants to drive a car needs to know how to build its engine? Of course that would help and is an advantage, but starting from it? nah. Until you would learn how engine works I would already finish travel around the world. twice. And this is the point of this conversation.

Actually the question was whether or not it would be helpful for him to learn at all, and somehow you changed it to be a question of whether or not he should start with it.

 

Your analogy doesn't even make sense, I can learn the basics of a combustion engine in a couple of hours; and understanding how it work would in fact make me a better driver. It would also make me a much better maintainer of my car, at a generally cheaper price. I'm not even sure how you would drive your car around the world, so clearly your exaggerating.

 

A better analogy would be "You are saying that one who wants to assemble an engine, should be knowledgable about how combustion engines work internally. Even if that knowledge is not required to assemble the pieces." That is much more akin to what we are saying; and the answer is "absolutely, without question." Understanding the underlying workings of a system will make you more effective at building on top of it. That is why they teach you how processors are physically built in Computer Science, and how code executes on top of that, and how we have languages on top of that, and how high-level languages interpret on top of that. You don't *need* to know any of that to write code, but knowing it gives you a more rich understanding about how your code is working; and makes it easier to work with the machine instead of against it.

 

I'm going to unfollow this post now since no matter what I say, or evidence I site, arguments are degrading to "nuh-uh" and are in no way helping the OP.

Link to comment
Share on other sites

According to this I should learn assembler. Nope. 

Much more important are general design patterns. I doubt he will ever have to write extra optimized code taking into account lower level functions, while well maintained code is a must everytime.

So once again, language is just a tool, what you need depends on task and for browser game you need to know JS not C. C will just confuse you because of its static nature and no OOP.

Yes, you should have a working knowledge of assembler and what your compiler would throw if you want to be good at compiled programs. No matter what advertisers claim, the optimizations aren't as smart as you think. (Reference: Write Great Code, Volm. 2)

And no OOP In C? Forgive me, but this totally look like a NooB statement to me. Famous examples of OOP design in C is Linux Kernel and GTK. C is a minimalist language, its up to you what you want to implement in it. Programming in C gives you many good qualities like building your tools and keeping them with you. It is fun to learn good programming practices in C.

While you can learn good programming practices in C, having working knowledge of assembler make you fully understand what code would work in the way you want.

 

So basically you are saying that one who wants to drive a car needs to know how to build its engine? Of course that would help and is an advantage, but starting from it? nah. Until you would learn how engine works I would already finish travel around the world. twice. And this is the point of this conversation.

Again, not good analogy. Driving car is much less an intellectual activity than programming so this analogy is incorrect. 1.5 million people gradutes as engineers every year in India alone and many of them either are from IT, or move to it. Imagine many million people over the world rushing into IT industry every year, why do you think you would sustainably survive while somebody else wouldn't? It totally depend upon your skills, how much you know and if there is a balance. Like knowing everything about how to program well and knowing nothing about marketing would again mean you can't survive where marketing is required.

Technologies come and goes. Standards change. Market attention varies. In such uncertain world how would you be able to survive and maintain a good position? It is impossible without adapting as per needs. C is lingua franca of IT world. Most widely used lanuages are of C family and is a fact.

It isn't open paradise for everybody. Those with enough skills and ability to adapt, it is for them. Yes some sectors of industry changes slowly. Like from a long time Linux geeks can afford to be at a comfort zone in server business. But game industry is dependnet on many variables! Like support for technology over which you make your game depends upon what hardware is in trend, what OS is in trend, what new supported technologies can offer, etc. Making best out of your abilities only give best result. All don't have equal ability to monetrize, market, program, sell, talk, think, etc. so different people would still give different results. Don't trust me? Then imagine a person born in 1970. From 1970 to 2013, in last 43 years he have hardly crossed half of his professional life and things have totally changed in IT!!

 

Learning directly from internet can work, but none can defeat learning and practising from good professional books. A good career needs a good base and in IT you have to continously learn. It is a fact but off course there are hundereds of thousands (if not millions) who try to make a living or try to support there main income source with some extra 'bucks' via making some cool game or app and fails. Some time they are disasterous, though they would never make headlines like success stories.

I don't want to discourage anybody just telling what I understood. And again as I said, in this fast changing IT world C is a language which once learnt not only makes you a better programmer but helps you learn new languages of its vast family.

Link to comment
Share on other sites

I agree to that ..

I have went to W3Schools and i don't think it's an easy way to learn something hard like coding .. I say CodeAcademy is way better as i use it.

 

Proof that i didn't say W3Schools is the WORSE site but it's not as practical and easier than a lot.

 

You need Time ...and Intrest

 

Well .. I have both .. But i don't know where to start from .. xD

 

Best of luck :D

It is difficult but very rewarding direction which you have chossed :D

 

Thanks.

 

I love these topics.  Actually learning JS is still on my to-do list, but I've learned a lot about JS just by being a member of this forum and reading conversations about it.  I bookmarked all of these sites, and it seems a lot less terrifying now. Thanks guys!  

 

Glad that someone else used this topic.

 

One important thing you should keep in mind: Making fun games has nothing to do with programming, I've been programming for years with many languages yet it doesn't mean I will make fun games to play, to make fun games you need to make lot's and lot's of games. So if you want to make better games, sticking with Construct2 or GameMaker might actually be better than learn programming in JS, because in your case you will make games faster this way.

 

That being said, if you find your self in love with programming then go ahead a learn JS.

 

Well .. I'm going to do my best with C2 but still .. I'm learning JS  ^_^

 

You guys know, we have a pinned topic here, with a bazillion books and links on how to write (good) javascript.

Just in case you missed it, because this thread here looks like thats the case :)

 

Yea i've noticed it but i wanted to know what other people think about this :)

 

I'm sorry if i didn't reply to someone but there's many replies.

 

Cheers :D

Hadzy Hayman

Edited by Hadzy Hayman
Link to comment
Share on other sites

  • 5 months later...

Personally, I would recomment CS50x to anyone interested in learning how to program. It's being offered though edx. It's free, it's a Harvard course, and ifyou complete it you even earn a certificate. It's a fantastic course, you really get your feet wet in the ocean of programming ;) Languages include: C [mainly] and then, more briefly, PHP, HTML, CSS (and maybe Javascript as well).

 

Anyway, I'd totally recommend you check it out ;)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...