Learning the Web
developer.mozilla.org
developer.mozilla.org
I’ve come to appreciate how far up the “literacy” ladder software development is: Basic Literacy, Digital Literacy, Computational Thinking, Programming Languages… Those of us who’ve managed to speak the language, and to do so with any degree of fluency, are a relatively rare bunch. But I don’t believe for a moment that this stuff is “hard” to learn, so much as “inaccessible,” and therefore, exclusive. I like to compare the situation we have today to the scientific community in the 17th century, when Latin was the “language of science”. What’s the language of computer science? Well it’s Greek to the lay person (even if it is Ruby). Technical fields require a precision, but the net effect of all that jargon is just as dispossessing. Add to this the fact that software itself is invisible, compiled, minified, obfuscated, socked away on some corner of the internet, hiding behind a slick GUI, turtle turtles turtles all the way down, tea cups stacked, all the way up… It’s no wonder that it’s such a struggle to learn.
The flip side of all of this is an odd kind of colonialism 2.0, where our technology, with our QWERTY keyboards, and ASCII character sets, and the programming language itself are all spreading the English language like smallpox. But I digress.
Thank you MDN for the quality resources! It will be fun to see what happens if/when computational thinking really takes hold.
Well, I don't know much, but having only studied Haskell really, I know that statement above is nonsense. You don't need variables to change in order to do interesting things. You get the values from outside the program, you can then have them used in ways that don't have to have the same variable mutating all the time…
You're just mistaking a claim about variables that change each time a program is run (which means they are initialized to a different value each time, whether mutable or immutable) vs. changing during the execution of a single run, which would require mutability.
The quote was referring to the former, not claiming that mutability is required.
Still not very constructive or relevant criticism on the page though.
Variables do always have the same value and never change in Haskell. They represent constant abstracted unknowns. That said, a lambda binder which introduces a variable can be applied repeatedly and therefore each independent time it's applied the body of it, where the abstraction occurs, is now understood to operate with a new value for that variable.
That's very different from change, though. The semantics of beta reduction clearly don't allow for change---merely substitution. The statics of it clearly demonstrate that even substitution isn't doing anything new---merely replacing like for like.
Even when your Haskell program responds to outside interaction---clearly, this is dynamic information, right?---it's still the same static artifact which is doing it. The variables at this point are all erased. It's merely the semantics of your program under outside intervention.
We're having a weekly IRC meeting on mondays at 19.00 CET, on irc.mozilla.org, #mdn channel.
LEARN TECHNOLOGIES: HTML, CSS, JavaScript, Python
One of those does not belong.So are dozens (hundreds? thousands?) of other capable languages and platforms. They could have easily mentioned Ruby, Java, or NodeJS.
disclaimer: python was my first programming language.
I probably learned more about the front end of the web as a side effect of writing scrapers in Python than I did on just tutorials directly about the front end. Then I started writing some front end stuff and it was easier to grasp because of that experience. I just wouldn't assume that everyone approaches learning the web from the same angle and limit them to only learning the front-end-three.
Learn these for the frontent: HTML, CSS, JavaScript
Backend options: JavaScript (NodeJS or io.js), Python, Go, Ruby
All four of those backend options are reasonable options for beginners moving from the frontend to the backend or learning the frontend and backend simultaneously.And how did PHP get left out of this?
I left PHP out intentionally. If you're going to be immersed in a new community, you should at least be immersed in one where a greater percentage of the code you come across is of reasonable quality and is more likely to have tests. The PHP community is the epitome of cowboy coding and a novice programmer would pick up many bad habits from the code they come across in that community.
The section does seem out of place in this context, but one reason that MDN has Python webdev info is to help community members contribute to this part of the Mozilla project. (MDN also has information about Gecko's internal C++ code, for similar reasons.)
BTW progress is quite slow on webplatform...
Seriously?! How did you arrive at this conclusion?
also, you don't sell your soul to google as a plus