|
|
|
|
|
by dibillilia
4187 days ago
|
|
I am a highschool freshmen. I would say to learn HTML and CSS from W3 schools. Then learn Python from http://www.learnpython.org/, until he can use dictionaries. Then move to javascript and web development from MDN. Use node.js for server side so you only need to learn one language and can make a working app faster.
Unless he wants to make games, then just learn Processing, then maybe C. Or brag to colleges, then just learn Python. Python makes the transition from HTML to Turing Complete languages much easier since you don't need to worry about syntax. I am speaking from experience, I couldn't learn JavaScript until I learned the basics of Python. Also, a large project is important. Working on my large TSA project has taught me a lot more than I would have learned by fiddling with smaller things. Avoid web app tutorials that make you pass a test before continuing. Code Academy, Khan Academy, and similar things are nearly always horrible for actually learning. For example, Code Academy starts its CSS turorial with a CSS3 animation, and has 5 screens for a Python tip calculator, with cryptic instructions that make coding seem a lot harder than it actually is. |
|
W3 schools is considered harmful by many and has at least in the past taught incorrect interpretations of standards. Please do not suggest them as a resource for new learners. It's better than it used to be, but is still unaffiliated with the W3C. MDN is a better resource.
For games, C# or Javascript are far better choices than Processing[0]. And C++ is a better choice than C, regardless of personal preference toward one or the other. Almost every game is written in C++, and libraries are designed accordingly.
Also, I would not recommend learning both server-side Python and Node. Node is not objectively better so there is no real reason to switch over just because it's "hot." Python has much more mature libraries and modules.
Large projects are not good for beginners, they cause sunk cost fallacy and probably repel a lot of people from new disciplines. Better to adopt a series of smaller, exploratory projects rather than reaching towards a momentous goal from the start. Beginners will only find themselves refactoring the same code over and over and over as they learn how to be idiomatic and efficient.
I would second the no CodeAcademy-style tutorials advice, and recommend picking up a good book in whatever language you wish to learn. Not a "For Dummies" style book, but one that is respected in the language community. O'Rielly books are often good, but usually a community will have one or more "bibles" that are the best track to follow. _why's poignant guide is a standout example.
Finally, I would urge any beginner to look beyond web development. It isn't really a good way to learn programming: 90% HTML/CSS work that doesn't involve control flow and 10% string munging. Games are better, but application development is best, and is likely to involve learning skills that will actually continue to be relevant and interesting in 5 years.
Source: I'm an autodidactic programmer who worked professionally as a software engineer while still in high school. I help teach a high school CS class.
[0] I love Processing but web and XNA framework games are way better for new learners especially.