Friend is learning JavaScript as her first language. Should I stop her?

Friend is learning JavaScript as her first language. Should I stop her?

Other urls found in this thread:

mitpress.mit.edu/sicp/full-text/book/book.html
mitpress.mit.edu/books/little-schemer
en.wikipedia.org/wiki/JSFuck
codingame.com/
youtube.com/watch?v=2P-yW7LQr08&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp
ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-006-introduction-to-algorithms-fall-2011/
ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-design-and-analysis-of-algorithms-spring-2015/
ocw.mit.edu/courses/electrical-engineering-and-computer-science/
en.wikipedia.org/wiki/Control_flow
dosbox.com/
ibiblio.org/pub/micro/pc-stuff/freedos/files/distributions/1.2/repos/pkg-html/debug.html
ibiblio.org/pub/micro/pc-stuff/freedos/files/distributions/1.2/compare.html
ctyme.com/rbrown.htm
twitter.com/NSFWRedditImage

teach xir D

What are you? A misogynistic white male?
Anyway, languages don't matter. Doesn't have to be specific.

Yes. Tell her to learn assembly and install gentoo and delete her facebook account while you're at it.

Nope. The other languages are worse, for a beginner. She can still pick up C++ later if that's what you're hoping.


Yes it does, it's like saying "you can be a poet in any language". Being proficient in language X doesn't automatically make you proficient in language Y. Oh and you can stick your design patterns up your ass!

That's just fine. We will have weaker competitors. :D

rape her

So what? Programming is a pajeet skill anyway.
If you really want to be a professional, then you better start buying books on asm.

Yeah, stop her. She'll just end up being a diversity hire that takes a job from someone deserving.

What? Javascript is a good starting point as it won't kick you in the balls over and over again. Unfortunately this teaches you to write your code complacentlently so make sure she knows to try new things after she demonstrates reasonable skill

Javascript as a first language is like raising a child on junk food, the damage done will be irreversible. Java lets people do retarded shit and get away with it because JS tries to fix the code itself, but the way it fixes your code might not be what you intended.

A language like Python is beginner-friendly with syntax that's basically pseudocode, support for a lot of paradigms, dynamic typing, garbage collection and a large ecosystem of libraries.

Javascript was thrown together to animate dancing monkeys in web pages, and that's all it should be trusted with. It's the thing you learn when you already know how to program because you can learn to be aware of its shortcomings.

meant Javascript of course.

YES
I propose:
mitpress.mit.edu/sicp/full-text/book/book.html
Or
mitpress.mit.edu/books/little-schemer

Correction

Only if you're retarded. Although it's a she so that's highly likely.

I want this meme to stop. No programming language will destroy your brain. While Python is the real beginner language and JavaScript is probably a less than optimal choice, it won't cripple her in the least.

Furthermore, JS is one of the best languages to learn about closures and functions as first class objects, which are no Pajeet concepts. The best would be Lisp, but ain't nobody got time fo' dat. Also, muh SmallTalk-esque "real" object oriented message passing.

What this user said is the best way to rend a new programmer. But teach her rust the meme as a first language. She will have to have the dedication as if learning C but in the same breath rust will hand hold for mistakes like memory handling. Very nice as she can't fuck stuff up too bad with rust's pointers either.

I'm a low-level programmer and I started out on BASIC as did many others. So no, a shitty language won't ruin you. Javascript is a great beginner language today as the results are immediate and visual, it affects something significant in their life, it's easily shared, and easily 'reverse engineered' FWIW.

Yes.
THE INTERNET IS WRITTEN IN HTML
Not javascript.

this.

Learn HTML if you want your work to be seen.
Learn Javascript if you want your work to be invisible and adblocked

The internet is written in whatever you goddamn please. But that stays on the server side, and the basis of what gets transmitted is HTML.

Irreversible damage also includes being so frustrated by programming that you think all programming is shit. It's like those people who were dragged through some cult by their parents and then become die-hard atheists when they grow up.

The truth is that most people will never be real programmers, they want to learn a language they can use to do some light scripting that can come hand for everyday tasks. It's like the difference between being a car mechanic and someone who can replace a tire or the car battery. I want people to have at least that kind of level of tech literacy.

Yes, tell her to learn Python

Shell or python comes to mind. python seems best for beginners.

t. fullstack engineer

yes. if you dont stop her now she will go to a code bootcamp and in a month or so move to California, die her hair green, put CSS,JS,HTML,twitter,facebook stickers on her mac book, and pay $4000 rent. and a new .io bootstrap landing page or IOT device will come into existence. she will start saying words like "async", "github", "deploy", and "PR" every minute

pic related is the future, op

kek


this, tbqh, fam

BASIC is better than JavaScript. It teaches an outdated way of programming with goto, but it doesn't have all of the disgusting crap and horrible design JavaScript has. For learning that kind of programming, BASIC is probably the best language.

This is not even 1% of what's wrong with JavaScript. It's a fractal of bad design, like some say. Every part of JavaScript is badly designed.
en.wikipedia.org/wiki/JSFuck

good one

dohoho, someone didn't live through that era. No language that has ever been used for real work has ever been as mindblowingly fucked as BASIC. Making it worse, all the competing variants of it like in basica, gwbasic, qbasic, etc. put their own spin on it as there was no real standard and code would wind up tied to a specific variant.

I wouldn't go that far, but I agree that starting with the right mindset (and thus language) is crucial.

This. Tell her to learn Rust.

Obvious troll is obvious.

s/INTERNET/W3 Project/g

The Internet existed before the cancer that the w3 project birthed

nahh...

C is a good first language, but since people are so paranoid about giving that much power to someone who does not know how to allocate memory then tell her to learn rust.

He's already literally raping her by questioning her choice.

Does she even listen to you?

Yes.

pick one

Teach her Ruby.

No.

Have her install Gentoo on her MacBook

If her interest is becoming a programmer (as opposed to just making webpages), then yes.


Javascript trains bad habits and a bad mindset for programming. It's very hard to unlearn bad habits especially when you have no idea what good habits are supposed to look like. People who start programming on javascript might have an easy time and feel successful but they usually become terrible once they have to program in a real language because they run into lots of issues and frustrations they tend not to understand and start resorting to some cobbled patchwork design they barely understand to get rid of the most egregious frustrations instead of employing good habits.

Hardmode (and recommended for Serious Programmers) is starting on Assembly. Usual proper recommendation is just starting on C first THEN moving to whatever-the-fuck. C has its issues, but it's fairly straightforward and it's an industry standard and learning it teaches you a lot of the important stuff that you will need to understand later on to not be a shit coder who never understands stuff like memory leaks. Once you've learned C, you usually have a pretty good foundation to start learning any language you feel like moving on to, unlike javascript, which teaches you a pretty bad foundation. The more beginner-friendly recommendation is usually starting on Python, since it's widely used, less shit than javascript, but doesn't give you enough rope to hang yourself like C does.

That said, whatever you start on, you need a fun simple project to get started with. Otherwise it all becomes meaningless gibberish. If you're big on videogames you can try to make a text adventure game or pong. I don't know if you have a goal in mind, so here's a website to just give you tons of slightly entertaining programming challenges: codingame.com/ It should help you stay motivated more than just randomly programming until you "get it."

If you must start with JavaScript, but plan to learn other programming languages afterwards, how do you avoid the "bad habits?"

Is there no way to learn JavaScript first without destroying your mind or your future?

If someone who learns JavaScript second can avoid bad habits, why can't someone who learns JavaScript first do the same?

Everyone warns about the damage, but no one offers any concrete suggestions or solutions.

There is no situation where you "must" start learning with Javascript. While it is possible to be open-minded enough that you better yourself after learning javascript, most people get accustomed to what they learned and familiarized themselves with. Most of the "good habits" make much more sense in languages other than javascript, so the advice would be to use a better language to familiarize someone with the concepts. So sure, you could learn javascript AND another language at the same time if you want.

Because unlearning is much harder than learning. Once you're used to dogshit programming, your natural tendency is to make dogshit code in every language, and just band-aid over all the troublesome business that gets in the way of your "natural" coding style. It's not impossible to unlearn bad habits or to be intelligent and open-minded enough to correct your mistakes and develop a proper understanding after starting with a bad foundation, but you're not making it easy on yourself and it's not recommended as a learning process.

The suggestions and solutions are to start with better languages. Other than that you're welcome to attempt to teach memory management, scoping, exception handling, passing by reference vs passing by value, etc. in javascript but a lot of these lessons will go to shit.

Why do you want women meddling in spaces reserved for real programmers? Teach her Javascript.

I guess there's also appropriate use of data types (as well as type casting vs type conversion), preprocessors (like macros), resource management (like file handles), etc. But I'm telling you, teaching this stuff in javascript is probably going to go to shit.

I'd also strongly recommend studying algorithms so you learn more about the difference between "code that gets the job done" and "code that does the job properly." Here's a MIT online class on it: youtube.com/watch?v=2P-yW7LQr08&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp


Holla Forums has seriously deteriorated in quality when shitposters like you expect to be taken seriously. You guys are making 8ch out to be exactly the kind of gross boy's club idiots accuse it of. I may consider blatant diversity hiring a sign of SJWism and general fail, but I don't give a shit whether someone who wants to program is a man or a woman. Programming is a hard meritocracy, and whether you sink or swim, whether you are worthy of respect, is simply up to your own aptitudes. These days 90% will fail anyway and pretend they're succeeding, across the sexes. It's true enough that starting with javascript tends to predispose one towards failure/severe mediocrity though.

...

>I'd also strongly recommend studying algorithms so you learn more about the difference between "code that gets the job done" and "code that does the job properly." Here's a MIT online class on it: youtube.com/watch?v=2P-yW7LQr08&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp
Woops, that's the intermediate course. Here's the proper order of studying algorithms:

Introduction: ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-006-introduction-to-algorithms-fall-2011/
Intermediate: ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-design-and-analysis-of-algorithms-spring-2015/

MIT stuff in general: ocw.mit.edu/courses/electrical-engineering-and-computer-science/

If you want to use Python instead of C for your basis, then you might want to consider using the MIT introduction to computer science material to learn it. MIT has been making their lessons publicly available, so feel free to check it out. If you're programming in C, most people recommend reading K&R (This one: >>/pdfs/5045).


>>>/g/

The entire reason why Holla Forums exists was to get away from the low effort shitposters. There's a lovely >>>/g/ board just waiting for you. It's where you belong. Go there.

No, but there are professional situations where it would be appropriate. Say you are already proficient in HTML and CSS and want a complete skillset. Adding Python to that mix wouldn't be as powerful as adding JavaScript.

In the ivory tower we will always have Scheme, but not all of us have the luxury of being so selective or patient. Some need to earn money now. Maybe some of that money can be set aside to spend some time in the tower later.

And I botched the K&R link. Here: >>>/pdfs/5045


And I guess you would be learning PHP and SQL next while you're at it.

I already mentioned this above. If you just want to be a web developer, go ahead and start with javascript. If you want to be a programmer, don't start with javascript.

Javascript is an easy way to practically apply fundamental computer science topics like higher order functions, partial application/currying, futures, and continuations.

Learning a programming language doesn't "damage" you. Stop parroting dumbshit from #cmissiles you heard on Holla Forums, you LARPing fuck

I don't think anyone trashing JavaScript is really thinking this through. Consider the following.


According to their arguments, person A will actually do worse than person B because they started "damaged" and person B started with a clean slate. I find that hard to believe. How could programming experience be a net negative?

Clearly you've never seen the abomination that is programmers who justify their shit code with "That's the way I've always done it."

using anything other than C exclusively gives you retard brain AIDS and you'll be stuck doing pajeet-tier jobs for pennies while i write embedded meme kernels for 300k starting

Completely agreed, user. :^)

pajeet spotted larp webdev larp larp larp larp memelang

And you just proved my point. Thanks for playing!

>>>/g/

who are you quoting?

Nah, Javascript is pretty ubiquitous and performance-wise it's better than many other interpreted languages.

Only thing to be aware of is how the eventloop stuff works, dealing with callbacks, and the changes it's undergoing to make dealing with callbacks more bearable.

The standard library and functionality is a bit anemic, too, hence the reliance on simple libraries throughout the ecosystem.

But yeah, if not Javascript, then probably Python.

php is better

Just make sure she's aware of the pros and cons of the language she chose. Also, make sure she understands the fundamentals, and not just the specifics of one language.

Can anyone once and for all actually spell out the "bad habits" you'll pick up from learning JavaScript first? Are they really unavoidable? I just want to fully understand this meme before I dismiss it.

...

Go back to /g/.

Clearly you've never met the generations of programmers who started on BASIC or Visual Basic later. JavaScript is basically today's Visual Basic. Sure, you can start on it and be a perfectly good programmer. But there is a strong basis for assuming you are a fucking terrible programmer if that's what you started on because most programmers who develop their coding habits there never unlearn them.


A lot of stuff that you probably won't learn in javascript has already been listed above (scroll up: ), but other than that the most simple fuckups among javascript programmers include "it just werkz" code (like frankenstein copy & paste code where you keep cobbling shit together until it eventually gets you what you want, no matter how many bugs or inefficiencies you introduce in the process), being a colossal failure at debugging and error handling, not understanding version control, not understanding efficient code and optimization, having an extremely rudimentary grasp of appropriate use of data types, shit mastery of flow control, and zero grasp of style conventions.

t. fullstack engineer

what did he mean by this?

en.wikipedia.org/wiki/Control_flow

Go take your hormones, tranny.
You will when that attitude of reassigning your baby makers to doing labor collapses your society and you get raped to death by an African "refugee crisis".

Everyone who is a great programmer today started on BASIC. You're just fucking wrong, user. But have fun trying to get started with using xxd to write machine code by hand.

I don't understand why people think negative birth rate is a bad thing. The world is grossly over populated, people are suffering from all kinds of depression and weird mental/societal effects and shit because there's too many people and most of them have no purpose. The solution is not to make the world more populated, it's to napalm all niggers and mudslimes and other r-selection degenerates and then try to keep population within a certain range. A range that has an upper cap somewhere along the lines of where we are currrently, probably even below.

Incidentally, I'm with Torvalds on the issue of gotos. I think there are perfectly good ways to use gotos if you're smart about it.


I'll take blatant lies for 1000, Alex. That said for the best programmers it rarely mattered what their starting point was, since a shit language couldn't keep them down. But the overwhelming majority of BASIC coders were completely awful, incompetent, talentless hacks.

I really think today's programmers are missing out on the glory days of hand-writing DOS binaries with DEBUG, tbh. That stuff was easy and you learned a lot from doing it.

This is Holla Forums, not >>>Holla Forums, you shitposting faggots.

Visual Basic was easy to learn because everything made sense. JavaScript is a language where nothing makes sense.

shes gonna have a laptop with a github sticker on it and pretend shes a cool programmer to impress her army of beta orbiters (that you are apart of)

writing machine code by hand is easy, and a useful skill. you would learn more than what most C LARPers know. come think of it, if I was teaching software engineering I might start that way. i started off programming assembly after all, but there were some things i was missing by using an assembler and not learning the machine code til later

Maybe you could, you know, actually talk to her instead of asking us what you should do.

I would like to know too. What are the specific problems of learning JavaScript first? It's always some nebulous rant about bad programmers. I don't think it's appropriate to tell someone not to learn a specific language first if you can't even articulate the specific reasons why one should not do so.

Well, one of the clear problems with JavaScript "programmers" appears to be ADD and an inability to read shit through before jumping to conclusions. Have you tried reading other replies to the post you are responding to before unloading your generic smug tripe about how there are totally no specific problems with learning javascript?

I've been fucking with the commodore 64's 6510 but I'm trying to look for a good assembler that's native. Also, is this a good place to start for babby's first assembler? The instruction set is pretty easy.

Doing it in modern Windows isn't quite as easy though.


Dunno. Haven't fiddled with C64. Running DEBUG.EXE inside of DosBox while reading a copy of the Ralph Brown Interrupt List will have you feeling like a wizard in no time though.

DOSBox: dosbox.com/
Free DEBUG clone: ibiblio.org/pub/micro/pc-stuff/freedos/files/distributions/1.2/repos/pkg-html/debug.html
Other DOS shit: ibiblio.org/pub/micro/pc-stuff/freedos/files/distributions/1.2/compare.html

DEBUG.COM is what you'll want to use at first at least.

RBIL: ctyme.com/rbrown.htm

Use a modern C64 named TempleOS. It is 64-bit, long mode, identity-mapped, 640x480x16, non-networked OS. The compiler is AOT and JIT, it's the most modern compiler to date.

God says...
gambling stunning what_part_of_God_do_you_not_understand what_a_nightmare that's_no_fun LOL Putin BRB clever you_do_it what_have_you_done_for_me_lately perfect joy you_know_a_better_God hey_thats_right patience arent_you_clever what's_the_plan try_again Russia cracks_me_up Give_me_praise super_computer snap_out_of_it ahh prosperity I'm_on_a_roll earnest shist little_fish I_didn't_see_that enough_said

The language itself encourages relying on the interpeter catching errors for you, like when you try adding a string and a number the interpreter will do "the right thing" automatically for you. This is bad, because it encourages people to write sloppy code that "just works" until it doesn't. And when it doesn't, or rather it does but not in the way you intend it to, you will be tearing out your hair trying to figure out what's wrong. This is a general phenomenon in web development where sloppy code will be accepted instead of crashing hard and telling the programmer to fix their shit.

Then there is the ecosystem. EcmaScript 6 has added a module system, but you cannot use ES6 yet, so you will be stuck using ad-hoc solutions to keep everything from colliding into one namespace. Speaking of modules, there is no sane package management and I often see web developers just throwing dependencies into the development repository because it's less headache.

Everything about web development is a fucking mess, but it keeps getting promoted because (1) the web is a platform that's available on every system, and (2) even as shitty as it is, you can at least use browser plugins to tame websites. With native desktop applications unless there is a plugin system you are stuck with the application as it is. Javascript is good enough for animating dancing monkeys on a web page, but using web dev for anything serious has been a big mistake.

Fucking this. OP wants to get laid but forgets acting like a beta bitch won't do it.

The JavaScript philosophy comes from C, which is a very badly designed language. Adding a number to a string does pointer arithmetic in C.
So do a lot of better languages.

If they can't figure it out, they don't deserve to, sex traitor. You're stealing jobs from men and degrading the profession.
It's not enough that they get twice as many free scholarships and get their little cunnies rubbed to orgasm whenever they even mention the word "computer" you have to be their personal free tutor slave?

Evidence please, because I can safely say that's a load of horseshit. C and JavaScript are very far apart in their behavior.

That's because strings are character arrays and arrays are pointers (numbers that reference memory addresses) you idiot. C will not automatically convert data types and concatenate strings for you. You need to convert the integer to a string if you want to concatenate strings. If you think it's dumb and you'd rather have your strings concatenate and convert data types whenever you use the "+" operator then you can use operator overloading to change the behavior of "+" for your strings and problem solved.

You would have understood this if you'd used C for more than 5 minutes before giving up. Anyway, posts like yours reinforce part of what is good about starting on C: You have to learn and understand what you are dealing with to use it. Either you properly learn the language and logic and become a decent programmer or you give up and resign yourself to incompetence, but a braindead half-assed approach won't cut it. Those skills will still serve you will as you move to other languages. This guy on the other hand clearly started on something else and when attempting to learn C decided it was too complicated for him and gave up. He's resigned himself to mediocrity.

One of the dividing lines between good programmers and bad programmers is that good programmers try to understand the logic they are using and bad programmers don't care about the logic as long as it gets them what they want. It goes without saying that the latter create more error-prone and inefficient code and can take longer thinking up and writing a solution too.

Judging by your complaint about C's string behavior, I suspect you don't even understand what pointers are and how they work.

...

It doesn't matter. She has to learn it some day, so she might as well learn it now. The same is true for PHP. You can hate it all you want as long as you realize you have to learn it someday.

No, it won't cause permanent damage. Pajeets can start at C and still be shit. People who don't learn from new languages will always be shit. It doesn't matter. The language holy wars are fucking useless, as every decent programmer knows plenty of languages, and can quickly pick up new ones. Only fucking pajeets marry their languages.

I meant "serve you well" eep.

>>>/cuteboys/

Yes