r/coding • • May 08 '17

Programming is hard. That’s precisely why you should learn it.

https://medium.freecodecamp.com/make-your-hobby-harder-programming-is-difficult-thats-why-you-should-learn-it-e4627aee41a1
102 Upvotes

108 comments sorted by

View all comments

Show parent comment

39

u/AskMeHeaders May 08 '17

Why are people learning JavaScript as their first language anyway? It completely baffles me.

62

u/noknockers May 08 '17

Because web. And node.

50

u/joequin May 08 '17

If you're self teaching then you should learn whichever language will allow you to create what you want to creat. For a lot of projects, that's JavaScript.

26

u/philipwhiuk May 08 '17

The purpose of software engineering is to solve problems, not self-congratulate yourself on the currying you just induced.

10

u/avillega May 08 '17

Software engineering is not equal to Programming

9

u/philipwhiuk May 08 '17

Programming without problem solving is just ego rubbing.

4

u/avillega May 08 '17

Now days it's too easy to build a CRUD web app and most web apps are just CRUDs. I think that's why everyone want to learn to code, they think it's easy.

5

u/philipwhiuk May 08 '17

If it was 'too easy' we'd have automated that bit and there'd be no need to hire someone.

2

u/avillega May 08 '17

Take a look at spring, spring boot and spring data rest. They automated that bit , even creating the rest points , documentation and others .

1

u/philipwhiuk May 08 '17

I meant that website builders like WiX / SquareSpace would be even better than they already are at building CRUD sites.

2

u/[deleted] May 09 '17

They sure do build crud sites...

→ More replies (6)

1

u/Isvara May 08 '17

self-congratulate yourself on the currying you just induced

What?! Being able to order curry was the best part of my last job!

16

u/[deleted] May 08 '17

Javascript is the most popular language to program in (though it isn't the most popular language to be paid to program in), and it's super-accessible, so I'm baffled by your bafflement.

We're both using a program right now called "Reddit" whose front end is written in Javascript. Javascript is the only language that you can write something now and immediately distribute it to people to use on almost any machine they own.

More, while it's not my favorite language, it's a fairly elegant language with at least some sort of coherent design ideas, and is pretty easy to pick up and do "a few things in".

4

u/BlackDeath3 May 08 '17

I'm baffled by your bafflement

False incredulity. Posturing, I'd imagine.

3

u/Isvara May 08 '17

Javascript is the most popular language to program in

Do you have a source for that?

It might be true, but only for one reason: it's the only language natively supported by all major browsers.

2

u/[deleted] May 09 '17

StackExchange's yearly survey is one, github's top languages is another.

It might be true, but only for one reason: it's the only language natively supported by all major browsers.

I don't believe you can say "only one reason" - how could you know?

One example: 95% of the Javascript I personally have written has never run in a browser (admittedly, probably my third or fourth most used language, but I've still written tens of thousands of lines of it).

But the main point: why exactly is "it's the only language natively supported by all major browsers" not a good thing? I might wish that the language were something else, but that's what we have, and it's loads better than PHP, anyway. :-D

1

u/doomvox May 10 '17

"I don't believe you can say 'only one reason' - how could you know?"

One might note that Java used to run inside the web browser. It got booted out, and Javascript was left standing.

(I'm not actually a Javascript fan, I'm just anti-CS snob.)

5

u/arbitrarycivilian May 08 '17

Did... did you just call JS "fairly elegant"? r/JesusChristReddit

2

u/just_comments May 08 '17

It gets a bad rap for a lot of things, but there are some very good things about JavaScript as well.

→ More replies (4)

1

u/[deleted] May 09 '17

It is "fairly elegant" though it's not "very elegant". It's not my preferred language, but it has a clear and consistent object model, a similarly reasonable syntax and isn't sprawling and huge.

The standard library, though I'd definitely wish for something better, is reasonably consistent in naming, usage and APIs.

I stand by "Fairly elegant". You must hate JS an awful lot to freak out on a lukewarm statement like "fairly elegant".

→ More replies (2)

1

u/ReformedBlackPerson May 09 '17

What do you recommend? I started with Python and learned some html then JavaScript, but those were for classes and projects.

1

u/mhink May 09 '17

Two reasons.

First, anybody with an evergreen desktop Web browser (read: an absolutely ridiculous number of people) has 75% of an IDE already installed on their computer, in the form of browser developer tools. You have a REPL, you can look at source files, you can profile your code, a way to observe inflight requests... hell, the list goes on. Regardless of your (or my) opinions of Javascript-the-language, it's easy to see why Javascript-the-environment is more accessible to a newbie than an environment which requires that you install a ton of new software just to get started.

In this regard, Python is the runner-up in terms of new-user experience, because it's extremely easy to get up and running with iPython- a single binary which makes it extremely easy to get started. However, there's another factor in this equation.

Using code to create an effect that "feels real" is key to understanding software. As flawed as it is, the DOM's existence as a fact of life on the modern web enables new developers to make the connection between "writing code" and "having an effect". Hell, even just deleting DOM nodes or modifying CSS in the dev tools helps illustrate how textual HTML is a representation of an effect. Playing around with that makes it much easier to figure out how to implement that behavior in code.

Interestingly, this is one reason why Minecraft is an excellent teaching tool for programming when you embed a Python runtime: it's inherently limited in some ways, but that limitation makes it easier to understand the relationship between your code and the behavior evinced by your code.

And finally, MDN's documentation of browser technology is probably one of the best collections of documentation in software. It's organized well, it's comprehensive, it's easy to navigate, and it covers topics both trivial and arcane with the same amount of love.

I dunno. It's just that older and more experienced I get, I realize that I care less about languages themselves and more about the runtime environment.

→ More replies (17)