Ask HN: What you wish you'd known before getting into JavaScript? - <AUTHOR> I want to learn JavaScript as my next language. I have been observing JS community for some time and it seems like there is too much noise out there with dozens of frameworks and language variations (e.g. CoffeeScript, TypeScript, JSX, etc). I plan to go through Mozilla's JS docs and Vue tutorial, but not sure if it is enough to get up to speed with the modern JS ecosystem. Which resources would you recommend? Which framework should I stick with? What are some things that you wish you had known before getting into JS? Note: I am comfortable with Python (including Flask/Django), Java, HTML and CSS, so picking up JS as a language won't be a problem. Interested in your thoughts. <comment><USER2> I'm a senior web developer now, started with other languages. This is a bit embarrassing but here goes:

1\. I wish I had known how asynchronous stuff worked before I got into JS. OR studied it in JS a bit more formally. I had a couple of months where I was confused as hell, because I didn't really understand how to do async, promises weren't really a thing you could use if you had to do older browser support back then.

2\. I really wish I had studied JavaScript. I didn't, at all. I was like "Yeah front end is easy anyway, lets roll" and just got started developing. I did so many stupid things, suffered so much, and really resented the language at so many different points exclusively out of my own ignorance. Once I got my head out of my ass, and actually studied the language in depth I felt like so many things started making sense.

To conclude with 2, I remember having a distinct realization that it wasn't JavaScript that was shitty. I had been a shitty developer for having not studied it.

Anyway, if I can give some advice those two would be it, understand how asynchronous flows work, and learn the language.

<comment><USER3> _> 2\. I really wish I had studied JavaScript. I didn't, at all. I was like "Yeah front end is easy anyway, lets roll" and just got started developing. I did so many stupid things, suffered so much, and really resented the language at so many different points exclusively out of my own ignorance. Once I got my head out of my ass, and actually studied the language in depth I felt like so many things started making sense._

Based on my experience interviewing candidates with years of alleged "experience", I marvel at how many so-called professionals don't bother to learn Javascript in any depth. I've had more than a few candidates that couldn't demonstrate how to iterate through the elements of an array, for example. Or correctly give the truth value of expressions like:

      "  ";
      "";
      undefined === null;

and on and on. These, to me, are dealbreakers. If someone can't rattle them off, I'm not going to pay them the six-figure salary they claim they're worth.

I'm surprised at the amount of resentment this sentiment of mine generates here on HN, of all places, but it does.

<comment><USER4> If I need to test on such things does that mean I can write code like the following?

        var a = [];
        a[0] = (a[0]+"")[1];
        a[1] = (a[1]+"")[2];
        `${a[0]}${(!"" + "")[3]}${(!"" + "")[1]}${a[1]}`;

Anyone who couldn't easily read it deserves to be fired on the spot.

<comment><USER3> Nadya, I don't understand the vitriol in your reply. If you think I'm being unreasonable not hiring someone who doesn't understand those basic aspects of the Javascript language, I would be interested in hearing your reasoning. Please share it if you don't mind.

<comment><USER4> I was being very heavily tongue in cheek. Your knowledge tests that people understand implicit conversions in Javascript to be able to find the equivalent boolean values.

        !!( "  ")
        !!("")
        !!(undefined === null)

You probably want to test for _any falsey value_ though. So the interviewee understanding the ToBoolean spec [0] would be what you actually want to be testing for.

        if (!x) {
            // interviewee should be able to answer for which values of `x` this condition would run
            // this shows they understand which values are falsey and which values are truthy
        }

The knowledge being tested would be "the same" but in a different, and I feel more direct, way. I felt your test was testing their knowledge of implicit conversion and not truthy/falsey values, so I wrote purposefully confusing code that uses implicit conversion.

"If everyone can easily understand what's going on, there's no harm writing code like that!" /s

[0] [http://www.ecma- international.org/ecma-262/6.0/index.html#se...](http://www.ecma- international.org/ecma-262/6.0/index.html#sec-toboolean)

<comment><USER3> Nadya, whether or not that's the best thing to test for is beside the point. All I'm saying is that, in my view, a professional Javascript developer _should know those things._ And apparently, a lot of people on HN disagree with me.

<comment><USER4> >Nadya, whether or not that's the best thing to test for is beside the point.

What you test on is almost as important as how you test on it. Interviews go both ways after all. I think a majority of people aren't disagreeing that a professional should know these things - but asking them to "rattle off an answer to [question]" is looked down on. It reeks of the "reverse a binary tree" or "implement [some sorting algorithm]" type of questions.

I consider myself a Javascript professional (in so much that I am paid primarily for the Javascript work I do) and I had no issue knowing the answer to the three items listed. If I was asked to rattle them off the top of my head as some sort of Fizzbuzz Filter equivalent - I'd thank you for your time and leave the interview.

I agree people should know the answers - which (as you've pointed out) _is_ the point you're trying to get across. But how you share that point, much like which questions you ask, is important.

<comment><USER3> I think you're reading too much into the phrase "rattle off". By that I simply meant that the interviewee should know those things well enough to answer correctly and confidently.

And it still amazes me that this position seems to be controversial here on HN. There are people who have expressed unequivocal agreement, to be sure, but a significant number seem to see that stuff as obscure arcana that a developer would not typically need to know.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER5> > What you wish you'd known before getting into JavaScript?

JavaScript is fundamentally different than Python or Java.

Learn plain JavaScript alongside learning a framework - it won't bore you too much with theory and you start right away building things

> too much noise out there with dozens of frameworks

Really, for the most part, it all boils down to React, Vue and Angular. Those are the mainstream ones, then you have hundreds or thousands of alternatives, but as a beginner, you'd better stick to the most popular ones, easier to find help and libraries.

> (e.g. CoffeeScript, TypeScript, JSX, etc)

CoffeeScript is no longer widely used. As I see it, it was mostly a good introduction to JavaScript for Ruby developers, but I haven't seen lots of CoffeeScript projects after the recent ECMAScript releases (ES6-7-8)

Watch out for outdated tutorials: after 2015 JavaScript changed a lot.

JSX is not a language variation, but rather a different way to write templates.

Avoid getting too picky with the tooling: if using Vue, just use Vue CLI. With React, just use create-react-app

Rely on a code formatter: Prettier. Also, use ESLint to make sure you start with the right foot on code best practices

Don't fall in the dogma and cargo cult traps: listen, learn, but pick your choices

</comment><comment><USER6> Use Typescript. Use async/await. Use ES6 classes, don't do the other class- like patterns. Oh and use ES6 features in general, like fat arrows. And don't write "var".

Don't use unnecessary compile-to-js syntaxes like Coffeescript since they will just be a burden in the long run. TS and JSX is an exception, those are worth it.

Don't write "undefined" in your code, just write "null", and treat those values the same. Some programmers will assign different meanings to "undefined" versus "null" but usually these meanings are arbitrary and silly. In most situations you don't even need _one_ kind of null, let alone two.

<comment><USER7> I advise the opposite of these points. Start with es5, at least for a few days. Go through the old tutorials, especially for promises.

Make sure you understand these, in order:

1\. callbacks

2\. promises

3\. async await

And in the mean time :

1\. prototype chain

2\. classes

Understand them in their old school form, first. The reason being: this fancy new async await and classes stuff is just syntactic sugar, which hides the implementation and will confuse the _hell_ out of you. You will not in a million years understand why you can

        return someAsyncFunc();

Instead of:

        return await someAsyncFunc();

... from within an async func, _unless_ it's within a try { } !

But if you understand promises, and how async await is just the same stuff different smell, you'll immediately grok it.

And god have mercy on your soul if you try to debug code with classes and methods, without knowing about the prototype chain.

JavaScript is, at its core, an incredibly simple language. But es6 introduced a lot of smoke and mirrors, which only really makes sense once you understand precisely the things they're trying to hide. You can get by , ignoring it, but there lies endless frustration.

It shouldn't take long to get the basics. Invest the week, and proceed to use the more powerful tools with open eyes.

(And typescript and jsx will also confuse the hell out of you if you don't get JavaScript yet. It's so confusing and layered; make sure you start at the bottom!)

That'd be my advice. But I'm a very "depth first search" kind of guy :)

<comment><USER8> Fully agree. Start with the old school basics.

And just a reminder. JavaScript isn't a subset of React. If you want to learn JavaScript start by writing JavaScript. Then when you get that down, layer on a framework or two.

<comment><USER9> If you want to learn JavaScript start by writing JavaScript.

This should really be like the first point of every javascript tutorial ever. Honestly.

</comment></comment></comment></comment><comment><USER10> I answered this specific question with this post a few years ago, and mostly the advice holds true today.

[http://fourlightyears.blogspot.com/2015/05/an-incredibly- bri...](http://fourlightyears.blogspot.com/2015/05/an-incredibly-brief- introduction-to.html)

If I could offer one single piece of advice that would save you hours, weeks and months of pain, it would be to use "create-react-app" which neatly sidesteps ALL of the pain arising from using the JavaScript toolchain. This is presuming you are going to use ReactJS.

create-react-app is a hundredfold more valuable than any other single thing to the JavaScript beginner. Maybe 200 fold.

Without create-react-app you'll rapidly sink to the 9th level of hell where the King Demon of JavaScript toolchains will torture you so unrelentingly that you'll beg for mercy and return to the safety of Python and leave your JavaScript goal to some other year.

<comment><USER10> Also, as a Python programmer, you'll want to use "lodash.get" which is the equivalent of Python's dictionary.get() function which is incredibly useful. To install it you do "yarn add lodash.get".

There's lots of ways to get variables from objects/dicts in JavaScript, and I almost always use:

      let foo = {"kingName": "edward"}
      get(foo, "kingName", null)

Thus you get a nice predictable null if there is no kingName.

Python does falesy well, JavaScript does not. In Python you rely on None alot, in JavaScript there are lots of inconsistent falsey values. Thus in Python I can do lots of code that is quite terse because it assumes a nice predictable falsey value, in JavaScript I tend to verbosely type out all my comparisons even if they are as simple as (variable === true) or (variable === false). By always consistently doing explicit comparisons (i.e. stating what I expect on both sides of the comparison) I can avoid alot of bugs arising from JavaScript's weird falsely behaviour. That's just my personal taste.

Broadly speaking I try to return null in JavaScript where I would have returned None in Python, and generally I'd rather be using lodash.get to force a null return. I prefer to avoid programming around "undefined" in JavaScript.

In Python you do alot of iterating dicts and lists. In JavaScript the equivalent is map/filter and find.

To answer the question of which framework to go with, it's a personal choice of course. I choose ReactJS over Vuejs. It strikes me that VueJS is easy to start with but that is because it lacks an overall architecture. Thus the tradeoff is that you learned it fast but maybe you'll pay for the lack of application architecture later. If you go with ReactJS you might find it harder up front to grasp the architecture, but you'll be in a good position when your application gets to the point of needing an architecture. If you are an experienced programmer then you should not be afraid to learn ReactJS. The other key difference IMO to VueJS and ReactJS is that ReactJS points in the direction of immutability with its one way data flow which I think is important. I must say my advice can be taken with a grain of salt though because I have not programmed VueJS so I'm biased.

As a Python programmer, you'll generally feel pain as you learn JavaScript because asynchronous programming pervades everything. At first I hated this but after many years of async programming I'm glad I understand it. Python is magnificently synchronous. For the Python programmer learning JavaScript I'd suggest making a real effort over time to learn all the JavaScript asynch programming techniques including callback, promises and async/await. Your head will spin but when it falls into place you'll realise the power of JavaScript's inherent async nature.

<comment><USER11> > Broadly speaking I try to return null in JavaScript where I would have > returned None in Python, and generally I'd rather be using lodash.get to > force a null return. I prefer to avoid programming around "undefined" in > JavaScript.

Why not var kingName = foo["kingName"] || null ?

<comment><USER12> > var foo = { kingName: '' };

undefined

> foo['kingName'] || null

null

<comment><USER11> '' defaults to null is a better default than '' been different than null (so you would have 2 different nulls).

</comment></comment></comment></comment></comment><comment><USER13> Avoid "full stack" frameworks with JavaScript -- they are all gimmicks. This is something I wish I knew at first. Start with Node.js, because you will eventually end up using npm, Webpack and Babel if you are doing serious web development. I used learnyounode[0] to get familiar with the basics of async- first programming. Even though you have tools like async+await and Promises, I would recommend being comfortable with callbacks.

Avoid CoffeeScript and jQuery, they are obsolete. Make sure you are comfortable with Webpack (build tool) and Babel (transpiler), since they are essential in web programming today. I would go with React + JSX over Vue, because I find it to be more elegant and intuitive.

[0] [https://www.npmjs.com/package/learnyounode](https://www.npmjs.com/package/learnyounode)

<comment> jfk-in-sd-ca Glad I read this because my impression was that JQuery Was still popular. Doing a lot of optimizing websites and jquery is a big source of bottlenecks. Seems like most plugins and themes for WordPress call a different version of JS which I believe causes the majority of conflicts.

<comment><USER12> You can actually use Vuejs instead of jQuery for simple cases (you can't use React). [https://medium.com/js-dojo/vue-js-is-easier-to-learn-than- jq...](https://medium.com/js-dojo/vue-js-is-easier-to-learn-than-jquery- abbbb9c12cf8)

<comment><USER13> I'm confused. Why can't you use React?

</comment></comment></comment></comment><comment><USER14> Be sure to understand the event loop. Javascript as an asynchronous language often comes back to bite beginners. Here are two great talks to help you:

[https://www.youtube.com/watch?v=cCOL7MC4Pl0](https://www.youtube.com/watch?v=cCOL7MC4Pl0)

[https://www.youtube.com/watch?v=8aGhZQkoFbQ](https://www.youtube.com/watch?v=8aGhZQkoFbQ)

Your life will be easier if you learn to use Chrome Dev tools (or the Firefox equivalent) early.

In the beginning, you don't have to worry about browser compatibility - embrace modern JS (ES6+)!

<comment><USER15> I second learning the event loop. One of the most important parts of the JS engines, though somehow missed by most commenters.

</comment></comment><comment><USER16> I just want to preface this saying that most of the JavaScript I do is on the backend.

> What you wish you'd known before getting into JavaScript?

1\. Start with plain JS. Before jumping picking and learning frameworks, helper libraries (like lodash) make sure you understand what the language in it's current form can do.

2\. Make sure your resources are current. Like @flaviocopes says, JavaScript has changed a lot since 2015. If something seems ugly or messy check to see if a cleaner syntax has been introduced in ES6+

3\. Pick a style and stick with it. JS is quite flexible in its syntax, I'd recommend using a linter from the beginning. I personally enjoy using Standard, but anything that is widely adopted will do.

</comment><comment><USER17> I'm gonna go with a bit more unconventional advice: start small. React, Vue, Angular are massive projects with a ton of underlying libraries, patterns and concepts that you will be discouraged to learn initially.

Start using a simple framework, reading the source code, maybe even writing your own to understand how everything works. Suggestions:

[https://github.com/hyperapp/hyperapp](https://github.com/hyperapp/hyperapp)

[https://github.com/choojs/choo](https://github.com/choojs/choo)

Also check out this redux + vanilla js exercise by a friend: [http://ramonvictor.github.io/tic-tac-toe- js/](http://ramonvictor.github.io/tic-tac-toe-js/)

Learn ES6: [https://egghead.io/courses/learn- es6-ecmascript-2015](https://egghead.io/courses/learn-es6-ecmascript-2015)

Once you get a good grip of the language, and are comfortable writing code, you can jump into JSX, React, Vue, and later TypeScript. Enjoy!

</comment><comment><USER18> Since ES6 JS has been attempting to satisfy two radically different models for software development: the classic Object Oriented Programming (OOP) style and a Functional Programming (FP) approach. Some frameworks are better suited to an OOP approach and others clearly expect you to use FP. Neither approach is inherently wrong -- although you will certainly find passionate folks making arguments to the contrary -- but if you mix and match approaches you will end up with an unmaintainable mess.

<comment> mr-ron I dont think this has only been the case since ES6. There have been plenty of OOP approaches over the years. The 'Prototype' method alone has caused serious confusion for me for as long as I had to work with it.

<comment><USER18> I agree with you but I do think the problem has become significantly worse since ES6.

</comment></comment></comment><comment><USER19> Worth noting there are still a number of ES5 projects out there and some of the ES6 changes can be more deeply understood as sugar around now-legacy ES5 concepts (async/await vs. fluent Promises and the class/object model in particular).

While I agree with the advice to be very conscious of how modern a given tutorial is, there's some value in knowing what the legacy code would look like as well. Even projects that transpile ES6 to ES5 can have gotchas that knowing ES5 helps avoid.

Re: TypeScript, etc., I'd recommend thinking of those as entirely different languages for now, and learn a little vanilla JS--same with any of the major application frameworks. JS is a great language to write more structured or domain-specific languages in, and that's what most of these frameworks effectively do.

</comment><comment><USER20> I've been developing 3 years with JS almost exclusively. The best book out there to start is 'Secrets of the JavaScript Ninja 2nd Edition' by John Resig and Bear Bibeault.

I'd recommend you grasp the fundamental concepts of vanilla JS before jumping between React, Vue or Angular.

Vue is a complete framework, great documentation and I'd prefer it over React since is less verbose, not a big fan of JSX (the internal language to write components of React) and I'd consider it less intuitive than Vue.

</comment><comment><USER21> This doesn't apply to newbies who don't know other languages, but since you know python and java, there are two things that got tricky for me with JS as a language.

1\. Learn about execution contexts early, and how returning functions is a trick.

2\. The history of JS is the history of trying to get around single threaded nature. So there are callbacks and promises and other constructs. Learn about them.

<comment><USER22> Re: 2: The history of language in general has included a lot of detours dealing with asynchronous programming. Python, which the OP mentions as familiar, has an almost even more convoluted history of asynchronous programming patterns than JS.

Both languages have settled on the async/await keywords for the most part these days, and the underlying components are relatively similar, though Python's coroutines are a little more complicated/hands-on than JS Promises.

On this subject, I highly recommend finding an environment that lets you use async/await patterns today. It makes working with Promises a lot easier/cleaner, and also makes you aware of why Promises are so great and the remaining other options such as callbacks should be wrapped with Promises then otherwise forgotten. Babel has transpilation options for it, but personally I'm strongly in favor of Typescript.

</comment></comment><comment><USER23> Focus on mastering the DOM and Web APIs as you learn. You could even try building a minimal, single page web application every day for the remaining 6 weeks left this summer ;)

The simpl.info site "provides simplest possible examples of HTML, CSS and JavaScript" to help get started. Good Luck!

[https://simpl.info/](https://simpl.info/)

</comment><comment><USER24> I would avoid frameworks but embrace transpiling and popular libraries.

es6katas.org is a nice starting point for newish es6 to look up in MDN.

After a couple years any es you are transpiling now will be usable directly on websites so you then have more of a choice in direction.

Frameworks might not be any more stable in another 2 years but adapting with them is much easier as you know more modern js.

</comment><comment><USER25> First, you really have to use some kind of a wrapper for the DOM. Very few web development is done directly against the DOM, due to design flaws and browser incompatibilities. (Unlike Windows / Mac / ios / Android where you just use the API that the OS vendor provides, and it's usually decent.)

But, those various wrappers get outdated very fast. The UI APIs on Windows, Mac, Android, ios, ect, change very slowly.

In Javascript, whatever framework / library / pattern / ect that you use to manipulate the DOM seems to change every few years.

</comment><comment><USER26> I think you should completely wrap your head around JavaScript's prototype chain before learning anything else. Since you are coming from Python the Javascript objects will be a bit of a shock. and regardless of the framework you choose you will have encounters with this strange Javascript inheritance (like angular 1 $scopes used it).

Personally I would recommend Vue once you're ready because you can get started with it right away. Also like others said learning webpack, npm will be really beneficial.

</comment><comment><USER27> If I were in your shoes, I would start with vanilla ES 5 (no package manager or framework) and build a simple project. In the beginning, you want to figure out big concepts like the event loop and all the ansynchronous stuff. When you first get started, all sorts of shit is going to be undefined, so log everything to the console and pay attention to how variables go from undefined to defined.

If you can't think of an idea, try building an accurate HIIT timer with vanilla JavaScript. Have a simple backend where you can save/retrieve/edit results and build an interface for that. But, don't get bogged down in package management, Webpack, libraries or any of the other shit.

Once you're finished that, ideally, you'll be in a position where you feel in control of your variables. You'll have some understanding of how JavaScript chains together, and a sense of how things will happen under the hood. Hopefully, you'll also be good with your chosen browser and its developer tools, especially the JavaScript console. And, with some luck, you'll have enough exposure to the 'interesting' parts of JavaScript that moving to ES 6 will seem like an actual upgrade.

At that point, you should be ready to start learning slightly more modern JavaScript. Then, it would be wise to move into a framework. Currently, your three big choices are Vue, React and Angular. I have little experience with Vue, so I'll let more experienced people weigh in there. Angular seems to be getting a little less popular, though it could just be because, since they started using semver, they've seemingly released a new version every eleven minutes.

</comment><comment><USER28> Surprised that no one has mentioned Douglas Crockford.

I would recommend his book JavaScript: The Good Parts [https://books.google.com/books/about/JavaScript.html?id=PXa2...](https://books.google.com/books/about/JavaScript.html?id=PXa2bby0oQ0C&)

And his Google Talk,

[https://youtu.be/hQVTIJBZook](https://youtu.be/hQVTIJBZook)

This is for plain JS.

<comment><USER14> after all the change the language specification and the various implementations have experienced, you'd still recommend a beginner to read a 10+ year old book?

<comment><USER29> Yes, because it's a great book. Everything in the book is still relevant, closures, currying, object binding.

If you use the syntax he suggests all your code will still work.

Just because let and const mean you can avoid some problems doesn't mean you shouldn't know why we have them.

The Monads and Gonads talk [0] he gave is also great.

[0]: [https://m.youtube.com/watch?v=dkZFtimgAcM#](https://m.youtube.com/watch?v=dkZFtimgAcM#)

</comment></comment></comment><comment><USER30> Angular and React are two different beasts that do pretty much the exact same thing. The learning curve of React is much easier then Angular. Versions matter much more then you imagine at first. As in versions of Node, Angular, etc. Never underestimate the power of jQuery still. Sometimes you just need a short cut.

</comment><comment><USER31> If you're coming from backend languages, perhaps you'd find it easier learning node first, then going into the front. This way you won't have to learn both the concepts of front end development and the new language all at once, you can do language first then front end paradigms

</comment><comment><USER32> 0) If you want to "get into JavaScript", don't even think about frameworks yet.

1) Read JavaScript: The Good Parts first. _First._

2) Build things, don't just read. A complete industry wants to teach you only React with infinite materials.

3) If you want to read, read the official documentation on MDN, not 3rd party materials. Those become outdated quickly, also most of them are crap by default.

4) Choose a framework with low barrier (yeah, it is Vue, not React, sorry), and build something. Finish it. With the tools you chose first.

5) Stick with the framework you learnt. Always will be a better one.

6) Subscribe to related Cooperpress newsletters, and go through interesting links regularly to stay up to date.

</comment><comment><USER9> A lot of your (my problems) would be solved if you understand what is async (as Zyst has already mentioned). This was a very very big problem for me coming off PHP (which is sequential, statement 2 gets executed after statement 1). So when I started with ajax requests, I used to put in timeouts, for loops which will wait for 1 second and see if operation completed or not and what not.

That and not declaring variables in global scope unless completely required.

Also I wish I had known to start with Vanilla JS and stick to it unless completely familiar then jump to frameworks. I started with jquery and the withdrawal was awful but heavy learning experience IMO.

</comment><comment><USER33> Most of the confusion and frustration rises from lack of understanding of the runtime execution and not the language; in case of JS:

\- execution flow and temporality of the code excecution(async, promises, etc...)

\- interoperability and boundaries of JS with the DOM, styling and HTTP(WS)

This hold true for most languages; concurrency, parallelism, etc... The devil and mastery is in the learning execution environment.

The static nature of writing code to represent dynamic, living state machines presents a gap and confusion.

My advice is to learn core technologies really well; JS, DOM, HTML, CSS, HTTP(S)/WS(S). Once you do this, you'll quickly understand and debug tomorrow's frameworks.

</comment><comment><USER34> If I could pick one thing that I wish I would have known, it would be the understanding of functional programming techniques. Adhering to FP principles like functional purity and composition has made my applications infinitely cleaner, more maintainable, and easier to test. My work mostly involves React, which is very well suited to functional-style programming, so if you're doing something with heavy graphics or some other application, YMMV. However for react apps or anything that returns virtual DOM nodes as a response to state change, FP is the way to go IMO.

</comment><comment><USER35> Before? How an event loop works under the hood (select) so you understand the single threaded nature (the benefits and pitfalls). Most resources cover the effects of this pretty well, but it's always nice to understand how it works by implementing a toy project with the syscalls directly

JS is a fun, but sometimes frustrating language to learn. The async-first, functional model is eye-opening and interesting (depending on where you're coming from!). I also find it more fun to program in than most other languages for some reason. Enjoy.

</comment><comment><USER36> > Which framework should I stick with?

When starting out it's best just using vanilla JS, otherwise you are dependent on frameworks to do the grunt work, and you will often wish a framework had a certain feature (you are best cooking up your own methods in vanilla JS). As for what frameworks to 'stick' with, I would go with something like Vue or jQuery, but more often than not you will not need them (Using Vue as an early entry to learning JS is like bringing a gun to a knife fight).

</comment><comment><USER37> That doing your backend in JavaScript means you never get a break from JavaScript.

I didn't know that was an issue until I had been using Node for two years. On previous projects I'd jump on a story outside my usual wheelhouse every so often for the variety. Even three or four weeks a year seemed to be enough. But now I can't get away from it, ever. I suspect this will end up being in the calculus when I am explaining why I took a new job in a new vertical.

</comment><comment><USER38> Make sure most of your tutorials are around the language and not specific to some frameworks.

Being able to understand the underlying language has been key to finally get a grasp on what happens under the hood with Modern Magical Frameworks.

Also, being able to understand the event-loop and how JS manages memory etc is worth getting into once you have the basics clear. I recommend understanding the internals of V8 at some-point down the line.

</comment><comment><USER39> 1) Watch this: [https://www.youtube.com/watch?v=8aGhZQkoFbQ&t=1s](https://www.youtube.com/watch?v=8aGhZQkoFbQ&t=1s) 2) Understand how `this` binding works. 3) Understand async/promises. 4) Learn debugging tools (`debugger;`, `$0`, how to turn on/off source maps etc.) 5) You will have to learn compiltion tools (babel and webpack)

<comment><USER39> As an exercise I recommend implementing most of utility functions from lodash library according to spec. [https://lodash.com/docs/](https://lodash.com/docs/) (lodash is popular utility library)

</comment></comment><comment><USER40> I believe every language has something to teach us so I'm not dismissing JavaScript, but why are you learning a language? The answer to that question will promote some answers to your questions. If you are just learning JavaScript to learn it you'll have a hard time getting the information you find to stick with you. Having a project to implement will give everything else you do purpose.

</comment><comment><USER41> I wish I had known all of the objects on `console` besides `log()`. There is a way to show data in a table, timers, nesting logs, and more.

</comment><comment> jfk-in-sd-ca I think the original question is pretty good one. Wish more time had been spent answering it directly instead of having to wade through all the replies to prove who's is bigger (brains) and who is more right.

The message is clear to invest the time upfront to learn it. What resources do people recommend and does it make sense to focus on specific framework?

</comment><comment><USER42> "What are some things that you wish you had known before getting into JS?"

You won't be able to program your hardware:

1\. No SIMD. SIMD is becoming important for anything fast.

2\. No instructions like `__builtin_ctzl` for counting the number of leading zeroes (essential if you're working with bitmasks).

3\. No fast uint32_t. 32-bit integers in Javascript are much slower than 31-bit integers in Javascript because of boxing.

4\. No fast uint64_t. It's nearly here, but whether (and when) it will be optimized remains to be seen. Say goodbye to fast hash functions for the next few years.

5\. You won't be able to do Daniel Lemire's fast mod alternative: [https://lemire.me/blog/2016/06/27/a-fast-alternative-to- the-...](https://lemire.me/blog/2016/06/27/a-fast-alternative-to-the-modulo- reduction/)

6\. Slow bridge to C, you can expect 20-25ns per call. This means that for things like implementing a fast hash table, you could try compensate for the lack of the above by using a native addon written in C. But even then, the calling back and forth will cancel any gains.

Basically, the hardware is moving ahead, and languages like Javascript are not keeping up.

You're going to be able to do a lot of these things in newer languages, however.

Apart from that, Javascript is a fantastic language.

</comment><comment><USER43> Decide what you're going to do about importing and exporting code before diving in. It's a whole can of worms.

</comment><comment><USER44> I think it is helpful to have some deeper programming language theory when learning JavaScript, so you can recognize what it is really doing behind some syntactic sugar. Specifically, first class and anonymous functions, closures, the whole event driven model.

</comment><comment><USER45> It's actually not that bad if you stick to the basics. I'd recommend just using Webpack + Babel to start so you can use the latest JS features and get a feel for what vanilla JS is. After that pick whatever big frontend framework clicks with you.

</comment><comment><USER46> TDD. i wish i had a clear understanding of how much easier a dynamic not-typed code became when you write your tests ( at all ) first !

( it was around 1998-2000... i guess there was _no_ unit-testing library for JS by then )

</comment><comment><USER47> This is easy: check out D3's architecture. It is "near functional" and tosses all the overly-complex (i.e. dangerous) parts.

And definitely read the still important "Javascript, the Good Parts".

</comment><comment><USER48> Javascript is not just a language anymore. It's the world's most complex and complete ecosystem comprised of several languages and dozens of specialized frameworks for multiple platforms.

Javascript Languages:

\- Javascript

\- Coffeescript

\- Typescript

\- (basically) Dart

Popular Javascript Language Additions:

\- JSX

\- Flow

<comment><USER14> it's important to note that these specialized frameworks often are abstractions over the web API, the DOM and JS.

E.g. lodash is a pure abstraction over JS, but React/Vue/Angular are much, much more.

</comment></comment><comment><USER49> That I should have not spend time at all on the "ecosystem" (npm, typescript, transpilers...). It works well out-of-the-box.

</comment><comment><USER29> I wish I'd known more about functional programming. The great bits of JavaScript are the functional bits.

</comment><comment><USER50> If you're reading something which suggests you use CoffeeScript, it's probably terribly outdated.

</comment><comment><USER51> I wish I had taken js more seriously. Read something like "you don't know js".

</comment><comment><USER52> > I want to learn JavaScript as my next language.

Welcome!

> I have been observing JS community for some time and it seems like there is > too much noise out there with dozens of frameworks and language variations > (e.g. CoffeeScript, TypeScript, JSX, etc).

Yeah, this is a double edged sword. People are always looking to build the next best solution, which is great for you as a consumer, but it's also terrible for you, because decision fatigue sucks and your decisions can feel like they're outdated in months, not years. Just make an informed decision when you go out to pick something and stick to it as long as it works for you.

One thing to know is that a lot of this is caused by the challenges of trying to hit the moving target that is web browsers. My biggest piece of advice for cutting through the bullshit is to find your root problem, then pick the handful of tools that actually solve it. Don't just use something because everyone else is using it; no need for cargo cult mentality.

> I plan to go through Mozilla's JS docs and Vue tutorial, but not sure if it > is enough to get up to speed with the modern JS ecosystem.

Go through the MDN JS docs, build fundamentals. Read through some library code like jQuery or a utility library like lodash to get a flavor of some interesting things that come up when building a frontend library.

> Which resources would you recommend?

Roadmapy resources:

\- [https://github.com/FrontendMasters/front-end- handbook-2018](https://github.com/FrontendMasters/front-end-handbook-2018)

\- Ponyfoo has some great es6 resources as well

> Which framework should I stick with?

Find what works for you. Just try to avoid things that have so much tooling you get paralyzed looking at how it works instead of doing something interesting to you. If you start with react use create-react-app to figure out the fundamentals. I'm sure there are equivalents to create-react-app that correspond to create-<library>-app nowadays.

> What are some things that you wish you had known before getting into JS? > Note: I am comfortable with Python (including Flask/Django), Java, HTML and > CSS, so picking up JS as a language won't be a problem. Interested in your > thoughts.

\- Learn about the different environments that js is run in and how this can impact certain things like module definitions, e.g. why is there amd, umd and commonjs?

\- Learn about functional programming in the context of js. It's a nice mixture between the two. Learn when to use one with the other.

\- Understand the inheritance model, prototypical inheritance isn't that bad, just get it out of the way.

\- Understand the runtime and event loop. This will inform you why you'll see things like callbacks, promises, generators and now async/await. Here's a fundamental breakdown of the event loop: [https://2014.jsconf.eu/speakers/philip-roberts-what-the- heck...](https://2014.jsconf.eu/speakers/philip-roberts-what-the-heck-is-the- event-loop-anyway.html)

\- Learn about the browser lifecycle

\- Invest in learning the chrome dev tools or ff dev tools, they're both wonderful and will save you hours

<comment><USER14> I don't see the benefit of studying the jQuery source. I'm grateful for every $-littered line of code I get to carve out of our projects

<comment><USER53> Regardless of how you feel about $-lines, we can all learn from reading project code.

</comment></comment></comment><comment><USER54> For context:

\- 2003, I needed to learn JS to move into a professional web developer position (from systems eng). I started with mootools/dojo/yui and jquery, when it came out in 2006.

\- 2009, apps started to get very complex and hard to maintain. Or I got experienced enough to figure there'd be a better way so I started working with backbone, (some) emberjs, and (a little) angular.

\- During this time, I also built a number of native javascript apps because frameworks and tooling were eating up a lot of my time. I also wanted to understand the language.

\- Eventually, I found elm because I started getting interested in type systems. I _really_ liked elm but it was a hard business case to make for a team. I settled into redux/react these last few years because it gets pretty close.

\- The first project I 'did in' redux/react' was actually just plain javascript. I naively implemented the react and redux api and patterns. This was _incredibly_ helpful. Not only did I quickly gain a fuller understanding of the tools I was about to use, I started to understand the muddier parts of JS: the event loop, async, hoisting, scoping, etc. I was aware of them before this, but I kinda just fiddled til things work. Afterwards, I knew what the computer was doing.

So, to answer you question 'what do I wish I'd known':

I wish I knew how much of JS is choosing a platform/toolset. I also wish I knew that that tool choice is just the start and doesn't guarentee anything. You can write a clear and easy to work codebase with JQuery. You can also make a hard as heck piece of junk in react.

I would suggest not too get hung up on it. It can be hard/impossible to choose the right tool if you don't have experience with the tooling or the problem.

So, get ready to jump around. I would get ready to pick a tool for a few months, then move onto another one. In my experience, there is not a great answer for questions like 'what is better, vue or react?' The answer is subjective, a choice that reflects personal and team preferences. You can be productive in both, so it's more about sticking to one.

JS, like every other software project, still benefits from core engineering principles: \- team dynamic and trust are !important! a framework will not help if a team member feels they are not trusted/growing/learning/producing \- prioritize readability, code is read more than it is written, \- prioritize simplicity, break complicated stuff into small, composable pieces \- with all due respect to the thousand of work hours put into webpack, it is still a pain in the butt ;)

Good luck!

</comment><comment><USER55> Create-React-App, RxJS, Styled-Components, and Rebass are my go-to helpers.

I would reccommend [Quokka]([https://quokkajs.com/](https://quokkajs.com/)) and [VSCode]([https://code.visualstudio.com/](https://code.visualstudio.com/)) for the fastest time-to-grok</comment>


Sanders to propose canceling entire $1.6T in US student loan debt - <AUTHOR> https://m.stamfordadvocate.com/business/article/Sanders-to-propose-canceling-entire-1-6-trillion-14032094.php <comment><USER2> This is one of the most ridiculous things I've heard suggested yet. It goes against every value of fairness we hold.

Bernie essentially wants to forcibly take money from everyone who was financially responsible enough to save and pay off their loans early, or who like me worked their asses off through college to be able to graduate without debt, and use it to pay those who were irresponsible enough to dig themselves into a massive debt hole.

I have little empathy for people with student or credit card debt. You took a deal knowing the terms full well, you have no right to complain that you owe the money you already spent but never earned.

<comment><USER3> >Bernie essentially wants to forcibly take money from everyone who was financially responsible

"Financially responsible" has become a euphemism for "rich and assumed to be responsible".

I know a bunch of people who are not particularly responsible with their money (splurging) but they are beneficiaries of a lot of unearned income (interest, dividends, rent) and I have yet to hear a coherent argument for why this unearned income shouldn't be taken away and used to fund the kind of education that improves the overall wellbeing of society.

This is the point where somebody tells me that those people don't have enough money to fund this kind of thing (bullshit), or that Bernie won't target them he'll target you (bullshit) or that if you tax them they'll just run away to Panama (there was a study that demonstrated that when their taxes are jacked up they didn't even run away from New York to New Jersey).

<comment><USER4> It's much easier to rob someone when you convince yourself that they didn't actually earn what they have.

This us vs them reductionism is seen in the early days of any communist system (the mass killings come a bit later)

<comment><USER5> Ah yes, communism.

This isn't us vs them - this is us vs... us. Everyone should want to allow people to access education.

<comment><USER4> >I know a bunch of people who are not particularly responsible with _their_ money (splurging) but _they_ are beneficiaries of a lot of unearned income (interest, dividends, rent) and I have yet to hear a coherent argument for why this _unearned income shouldn 't be taken away_ and used to fund the kind of education that improves the overall wellbeing of society. This is the point where somebody tells me that _those people_ don't have enough money to fund this kind of thing (bullshit), or that Bernie won't target _them_ he'll target _you_ (bullshit) or that if _you_ tax _them_ _they 'll_ just run away to Panama (there was a study that demonstrated that when their taxes are jacked up _they_ didn't even run away from New York to New Jersey).

Emphasis _mine_

<comment><USER6> Calling the income "unearned" doesn't make it unearned. It doesn't make people any less deserving of keeping what rightfully belongs to them.

At some point in the past, a person (possibly an ancestor) took risks to create wealth. Part of the motivation is to later have an easy retirement or to support one's children. You'd kill that motivation, causing people to avoid the risks which would no longer create wealth, and thus prevent things like start-ups.

</comment></comment></comment></comment></comment></comment><comment><USER7> This makes me very angry. I went to college twice, both times I got a federal loan, and both times, through blood sweat and tears, I paid it off myself. Why should I be penalized for choosing a major that pays, getting a job, and knuckling down to pay these loans? People must be held accountable for their poor decisions, even if it is $100,000 in student loans to get an interdisciplinary degree in religious and women's studies [1]

I also take offense to general tone of liberal policy these days of "giving" something away, or making something "free." Someone has to pay for it. There's a lot to be said and agreed upon for the common good, but there's more to be said for just paying your own damn bills and stop waiting for someone else to rescue you.

[1]. [https://www.nytimes.com/2010/05/29/your-money/student- loans/...](https://www.nytimes.com/2010/05/29/your-money/student- loans/29money.html)

<comment><USER8> You should get a check too. Everyone who paid student loans in the last ~20 years should get some amount of money. We could afford it for less than DOD accounting fraud.

<comment><USER9> Why not just a straight refund for all tuition payments in the last 20 years?

<comment><USER7> or 40

<comment><USER8> College has gotten a lot more expensive lately. Anecdotally, after the recession my in state tuition doubled because of less funding from the state.

I agree it's a great question of what should be done but I'm mostly happy to reframe Sanders' proposal as a minimum.

Further reading - I'm a big fan of the schedule idea: [https://www.peoplespolicyproject.org/2019/04/23/providing- re...](https://www.peoplespolicyproject.org/2019/04/23/providing-reparations- for-victims-of-unfree-college/)

<comment><USER10> > Anecdotally, after the recession my in state tuition doubled because of less > funding from the state

No, your state tuition doubled because of rampant spending increases underwitten by a limiless supply of student loans. Your state may have reduced funding somewhat, but that's not the primary cause of higher tuition.

Ask your state school system what it's employee:professor:student ratio is now vs 10 years ago. How many new buildings have been built in the past 10 years? And how do the construction costs compare to those built 20 years ago?

</comment></comment></comment></comment></comment></comment><comment><USER5> You design a system for the citizens you're representing. Not for citizens you ideally want to be representing.

Are these debts using people's ignorance about financial terms to make money? AKA Are they predatory? - If so then that's a bad thing.

You might not care - but I care about the well being for people I'm sharing a society with. I don't want people taken advantage of. I don't want education to have capital associated with it. I want people to be able to get education without "oh will i be able to pay off the loans for this education."

So you might think you did a good job working your ass off affording education. People like Sanders and I think that getting a quality education should be completely unrelated to "working your ass off."

I've also worked my ass off to afford my education. I still think it's a bad system and I don't care if my taxes are rerouted from killing people in foreign countries to helping my society get stronger and better.

<comment><USER11> Is a case by case thing, some maybe predatory, some ignorant, but some are not. You can't just say everyone gets off Some bad apples are there

<comment><USER5> Right, but who cares!

Why do we want to preserve this system that doesn't allow everyone to have a fair chance of progressing? Why does education need to be artificially limited?

It's not difficult to imagine a world where education isn't limited by the amount of money in someone's bank. Think about all the possibilities if everyone can go learn whatever their heart desires without worrying about paying something back?

<comment><USER12> > Think about all the possibilities if everyone can go learn whatever their > heart desires without worrying about paying something back?

They can do that online and or in a library. Once you start paying someone to teach them, it starts costing money and that money has to come from somewhere.

</comment></comment></comment></comment><comment><USER13> Bernie and Warren are currently in a race to see who can unrealistically promise the most things to shore up the youth vote. I'm getting tired of unrealistic proposals that are akin to political grifting. These would never pass congress, even if Democrats controlled both chambers with super majorities. We can't get anything done in Washington because neither party puts forward anything realistic that can actually pass. It's tiresome. No one is willing to compromise and everyone puts up nonstarters.

<comment><USER14> The Affordable Care Act was absolutely a compromise. It's not difficult to imagine a compromise being reached on a pledge like this in a similar fashion. It's primary season after all, candidates are laying out their philosophy as much as they're laying out actual legislation.

<comment><USER13> How are this and ACA even remotely similar? This proposal doesn't even address the cause of high costs of education. So, we pay it all off and then wait for the next bubble. That's like implementing TARP in 2008/2009 to buy up bad banking assets and doing nothing else to prevent it from happening again.

<comment><USER14> I didn't say they were similar, I said that the ACA is an example of legislation that was passed through compromise.

<comment><USER13> The ACA was only voted for by one party hardly a compromise, and because of that it had been crippled on the state level where it absolutely needed support. So, still a poor example.

<comment><USER15> The ACA wasn't a compromise between parties , it was a compromise between the conservative and progressive wings of the Democratic Party - Senator Joe Lieberman's (a former Democrat who had run and won as an independent) vote was crucial to passing the act and also to the removal of the public option from the bill.

<comment><USER13> ...and it doesn't really work because it wasn't a compromise between parties...since the GOP controls most state governments, they have stripped out the Medicaid portions. So...it is largely a failure in many regards. If there had been real party to party compromise, the bill might have actually helped cut costs. Instead it was just something to pass quickly to notch as an accomplishment. The Democrats aren't the only ones who have done that...the GOP is equally guilty. It's time to start compromising across party lines, and things like what Warren and Bernie have put forward do the polar opposite.

<comment><USER15> Medicaid has been expanded in the places where the vast majority of Americans live. Even in some red states.

Issues with the ACA are hardly limited to the Medicaid expansion. And labeling it as "something to pass quickly" does a disservice to the negotiation involved in the bill and how it almost didn't become law in the end when the democrats lost their 60 seat majority in the middle of final negotiations and passing.

Not sure how anything new gets passed though. Even if warren or Bernie win, it's unlikely they get 60 senate seats.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER16> Can someone else propose a bill to bar senators who are running for president from proposing bills?

I find this disgraceful. Most of these loans were taken by students and _co- signed by parents / guardians_. Meaning everyone knew what they were getting into. Presumably, because the parents / guardians are on the line if the students can pay their debt, they would / are providing guidance (i.e. thinking of the long-term impact).

Buying votes is the hallmark of American politics, usually with political favors; but this is a tad more than normal.

I'll take my $70k in loans over selling my soul.

</comment><comment><USER17> Moral Hazard.

[https://en.wikipedia.org/wiki/Moral_hazard](https://en.wikipedia.org/wiki/Moral_hazard)

Who would pay toward their current student bill, if there were any chance of this passing? And what is the incentive for anyone to choose a cheaper public school, rather than a more expensive private one?

<comment><USER18> > And what is the incentive for anyone to choose a cheaper public school, > rather than an expensive private one?

From the article

> as part of a package that also would make public universities, community > colleges and trade schools tuition-free.

There would be no incentive to pick a cheaper school because all schools would have the same price -- $0.00. Students should go to the best school they can get into. Schools should enroll the best students they can attract. It's better for both parties.

<comment><USER19> Most schools are private.

<comment><USER20> Huh? In what country? In the USA, most schools are public, if we go by students that attend public vs private universities and colleges.

</comment></comment></comment></comment><comment><USER21> Interesting strategy. Clearly hoping to effectively buy the votes of those with debt but the flip side is he dramatically alienates himself from anyone even approaching the "fiscally conservative" portion of the political spectrum. I guess his gamble is that he had already lost all those potential voters. Not sure it's a winning strategy.

I would not have voted for Bernie before this, but it further reaffirms my fears of his election. The fears are probably largely unfounded as he would be likely blocked by the legislature but who knows.

<comment><USER14> I don't know why anyone even touching the "fiscally conservative" end of the spectrum would even consider Sanders. Anyone alienated by this proposal was alienated long ago, so I really don't think this is going to have a big impact on him.

<comment><USER22> I don't know why anyone even pretends there is a "fiscally conservative" end of the spectrum. A few writers at the WSJ and a banker or three does not a demographic make.

No one cares about that stuff. No one. Everyone wants the government to spend on their priorities. Everyone thinks spending on other people's priorities is wasteful and unsustainable.

Everyone is wrong. The galaxy brain end of things is the realization that, yes, US government debt is almost literally free money in every sense of the word and we're absolutely bonkers not to be spending it on objectively useful junk like education.

<comment><USER21> > I don't know why anyone even pretends there is a "fiscally conservative" end > of the spectrum. A few writers at the WSJ and a banker or three does not a > demographic make.

How does a perspective like that gel with a state like Texas?

[https://www.kff.org/other/state-indicator/per-capita- state-s...](https://www.kff.org/other/state-indicator/per-capita-state- spending/?currentTimeframe=0&sortModel=%7B%22colId%22:%22Per%20Capita%20State%20Spending%22,%22sort%22:%22desc%22%7D)

[https://en.wikipedia.org/wiki/List_of_U.S._states_by_GDP_per...](https://en.wikipedia.org/wiki/List_of_U.S._states_by_GDP_per_capita)

> The galaxy brain end of things is the realization that, yes, US government > debt is almost literally free money in every sense of the word

How does a perspective like this gel with any of the numerous hyperinflation states that have tried this?

<comment><USER22> > How does a perspective like this gel with any of the numerous hyperinflation > states that have tried this?

None of them were issuing US debt. Have you ever recommended a home purchase as an investment? US bonds are _cheaper_ than mortgage interest.

<comment><USER21> So because mortgage interest > US bond interest, US gov debt is free money? The debt still needs to be repaid and that repayment has to either come from inflation or from taxes. Neither of those are "free". You can't treat it like it is and any perspective taken that it is free is one that clearly doesn't take into account the realities of other economies. It might be relatively low cost money on the margin, but you're just borrowing from future citizens or planning to default.

Unless you believe the US government has absurd returns on its spending which of course doesn't gel with US GDP growth in relation to US spending growth...

<comment><USER22> > Unless you believe the US government has absurd returns on its spending > which of course doesn't gel with US GDP growth in relation to US spending > growth...

Citation needed. In fact US growth relative to revenue has been consistently and considerably higher than the rest of the industrialized world for effectively all of the past century.

But it doesn't really matter, because you're making a tribal point and not an economic one. A year ago, I'm quite certain you were _nowhere to be found_ when the government decided to spend $1T of that same free money and hand it to wealthy taxpayers. But try to do that same thing for recent students and you all lose your fucking minds? Yeah. Tribal.

I said it up thread: no one cares about this stuff. _You_ don't care about this stuff. You just don't want the government spending its free money on the wrong people.

<comment><USER23> AJ, letting people keep the money they earn can cause the economy to expand. It happened in the 80s, 90s, 00s, and it's happening now. Any engineer worth their salt should know that every choice comes with trade-offs. And finding the optimal mix of taxation, regulation, and free market capitalism is a difficult balancing act. If the economy stops growing, our huge debt becomes a huge problem. The only reason money is cheap is because the U.S. has a track record of growth. If that growth stops due to excessive regulation or taxation...money gets more expensive and long-term tax rolls go down...meanwhile debt stays static and the cost of servicing that debt consumes a higher portion of Federal tax revenues. Millions of people care about this stuff. Your arm chair observation proves nothing, says nothing.

There's no such thing as free money. It's beyond ignorant to say so.

<comment><USER22> Citation. Needed.

That's just wrong. There's no meaningful economics behind the magic fairy dust notion that tax cuts cause growth. In fact where actual research has been done, the effect more often shows the opposite. Tax cuts go disproportionately into illiquid investment holdings, while spending end up in consumer pockets. Look. It. Up. Or, y'know, keep parroting what you hear on "business news" and FOX.

<comment><USER21> Your level of discourse is not conducive to your points. You rant to get citations from others without providing any of your own (just telling people to look it up) and then you make unfounded assumptions about the behavior of those you converse with. If you want to get your point across, you're rhetoric does you no favors.

Your economic arguments have so far been "debt is free and there's no multiplier effect on tax cuts" which seems dumbfounding to anyone who studied economics. Tax cuts that aren't associated with federal spending decreases are obviously going to increase spending. Also, if you really believe the US debt is free money, why have any taxes at all? Your arguments are incoherent, unspecified and full of ad hominema.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER24> >...$1.6 trillion of student debt held in the United States...

According to [https://www.nerdwallet.com/blog/loans/student- loans/student-...](https://www.nerdwallet.com/blog/loans/student- loans/student-loan-debt/), $119.31 billion of the debt is private.

>Sanders is proposing to pay for these plans with a tax on Wall Street his campaign says will raise more than $2 trillion over 10 years, though some tax experts give lower revenue estimates.

So, a portion of the tax would go right back to the banks financing that private student loan debt. Interesting!

<comment><USER25> How does it go back to the banks?

<comment><USER26> It gets paid to some banks from taxes on other banks.

</comment></comment></comment><comment><USER27> I understand moving the Overton window, but a plan like this just seems infeasible and dangerous. Like drug prices, the price of higher education should absolutely come down (or wages rise faster than the cost of higher education).

I actually think the Department of Education's strategy is a good step forward here. By publishing earnings data of grads by major it helps inform prospective students of what would be a prudent major.

My hope is that with the resurgence of the space sector with private space companies and going to Mars, that kids will have a new found interest in the sciences and move into more technical fields.

</comment><comment><USER28> Right after I've finished paying mine off, of course. Do I (and everyone else in my position) get money back? Or did we spend all those years cost-cutting for nothing?

<comment><USER29> "But he answered one of them, 'I am not being unfair to you, friend. Didn't you agree to work for a denarius? Take your pay and go. I want to give the one who was hired last the same as I gave you. Don't I have the right to do what I want with my own money? Or are you envious because I am generous?'"

This is a very bitter pill. But you get to choose how to swallow it.

<comment><USER24> I'm curious, where is that from?

<comment><USER30> Where else? The Bible. Jesus is trying to point out that it doesn't matter whether you were pious all your life or came to it late. You still get to enter the Kingdom of Heaven

<comment><USER29> and the Kingdom of Heaven does not have to have anything to do with "what happens to you when you die".

Along with "son of man", it's one of the more undefined but well known phrases from the NT.

I tend to think it's got vastly more to do with improving the life we know than it does with anything about "getting to go to heaven if you're good"

<comment><USER31> The parable literally starts saying "The Kingdom of heaven is like"... so you can't really escape from that context.

<comment><USER29> What I mean is that the phrase itself is not well defined. Certainly the parable is meant to tell us something about its character, but not necessarily its nature.

Until I was in adulthood I figured it meant "heaven"; that is not at all clear, actually.

[https://en.m.wikipedia.org/wiki/Kingship_and_kingdom_of_God#...](https://en.m.wikipedia.org/wiki/Kingship_and_kingdom_of_God#Gospels)

</comment></comment></comment></comment></comment></comment></comment><comment><USER26> The "privileged" are the ones attending college. Cancelling their debt -- in practice -- would be seen as racist/classist once someone runs the actual numbers. So there would be means testing and possibly race testing, or first generation college student testing.

Now you have a dividing line with some people above it receiving nothing, and a lot pro-rated in the middle. Everyone is jealous of those receiving more than they are. The line that schools are getting more expensive because the free-riders don't pay anything isn't going to sit well with those who failed the means test and feel they are subsidizing.

There is a strong fracture between the two groups and suddenly we're producing a whole new generation of Republicans.

Or nobody takes Warren and Sanders seriously when it comes time to actually elect them outside their echo chamber and this goes nowhere.

</comment><comment><USER32> Some comments here are along these lines: "emancipation is an insult to those who worked hard to pay off their masters for their liberty" give me a break. I paid student loans and I'll be happy that the next generation won't have to.

<comment><USER33> This is how I see it, too. Colleges at this point are just siphoning money out of the federal government by jacking up tuition by rates several times the rate of inflation every year, and it doesn't take much effort to realize that the next generation of students will have to take on insane amounts of debt to gain even the opportunity of entry to the professional class. Even nowadays I have a hard time believing the pseudonymous internet bootstrappers who somehow paid for a bachelor's degree in 2012 by waiting tables between classes.

</comment></comment><comment><USER34> I went back to grad school to get my computer science degree, I still owe more than 35K from my bachelors and masters combined and I can say honestly this is a terrible idea.

According to both liberal and conservative economists making higher education completely free is an awful economic policy. We're already running a deficit. Make it means based.

For those those making less than 100K, for teachers, social workers, working for non-profit give those people a break. We loaned billions to financial institutions at exceptionally low interest rates during the economic crisis, give those same rates for college loans.

But don't just cancel all of it. That's terrible economic policy.

</comment><comment><USER35> He's going to wipe out grad school debt too? So instead of working and being cheap to pay off my undergrad you mean I could have been racking up fat debts doing master's degree this whole time? Wow, can I get the last decade back?

<comment><USER36> Let me preface this by saying I 100% don't see this happening anytime soon...but.

Would you prefer we just keep going at this pace and hurting future students because in the past people had to pay? Sounds like a pretty shitty future.

<comment><USER37> Making student loans dischargable by bankruptcy again would be a much better solution. Not only does Sanders' suggestion not solve the problem, it hurts people who did actually pay off their debt. Whereas the problem fixes itself if bankruptcy can wipe out student loans: loaning institutions would be more careful about loaning money. Right now they are guaranteed to get the money back, so if you want a $100k loan to study Aboriginal Literature, sure no problem. If they had to think about whether you could ever pay off that loan, they might think it's a problem, and then the Department of Aboriginal Literature might have to rethink their tuition and/or cost structure.

<comment><USER15> Almost all student loans are from the federal government now anyway, so in reality they'd probably just keep loaning the money since the government doesn't care about losing it.

You'd probably have to get rid of the government-run student loan program at the same time as making the loans dischargeable in bankruptcy to really get something working properly, I'd think.

</comment></comment></comment></comment><comment><USER38> I have student loans, if next year all college students get free* tuition I'm not going to be upset that I had to pay. I'm going to be happy that they don't have my burden.

We as a society need to push the next generation up, not bitch that they don't have it as hard as we do.

*paid for by our taxes.

</comment><comment><USER39> For comparison, Obama bailed out wall street in 2008 for 3.6T. Bernie is still on the cheap.

<comment><USER40> you mean this one signed by Bush?

[https://en.wikipedia.org/wiki/Emergency_Economic_Stabilizati...](https://en.wikipedia.org/wiki/Emergency_Economic_Stabilization_Act_of_2008)

'free market economics'

<comment><USER39> Yes, that is what I had in mind.

</comment></comment></comment><comment><USER29> Cancelling a loan, naively, is a taxable income.

What's the mechanic being proposed such that "you just 'earned' $60,000 this quarter" doesn't trigger?

<comment><USER41> There was an exception made during the recession to exempt cancelled mortgage debt from federal taxation, for example.

</comment></comment><comment><USER42> I am not American though I live in the US and I don't have student debt. I probably won't retire in the US either, which means that all the money I pay into social security is a donation from me to you. And I grew up in circumstances substantially more constrained than most people here who are complaining about the unfairness of Bernie's proposal.

I don't agree with that one bit.

The US is the richest country in the history of humanity. It owes its citizens a good life - education, health etc - no questions asked. In fact, it owes that to the rest of the world, since so much of the wealth has been created through the hard work of immigrants :)

If I could vote, I would pull the lever for Bernie without hesitation for being the only candidate for the Presidency who truly understands the depth of transformation this economy needs. An America without pain and uncertainty will make the world's problems easier to solve.

</comment><comment><USER43> Wrong problem. Make school cheaper. I'd seriously consider removing private (and public) schools tax exempt status. Or tax them at some non zero rate pegged to their fee curve. Tuition growing at double digit percent a year is utterly insane.

</comment><comment><USER11> Ok that's very nobl, but someone else is paying that 1.6T that is owed to lenders. Doesn't make sense any way you cut it unless you either force someone else to pay, force lenders to take a cut and a longer term with lower rates.. or ask the students to pay it back once they get settled. Someone is gonna pay

</comment><comment><USER15> Just remove the tax penalty from [https://en.m.wikipedia.org/wiki/Income- based_repayment](https://en.m.wikipedia.org/wiki/Income-based_repayment) and student loans won't hold anyone back. (You pay only up to 10-15% of your discretionary income. After 30 years the remaining balance is forgiven, but the IRS considers the forgiven balance income and will try to tax you on it)

Also, this should be the default payment plan instead of the 10-year repayment which is currently the default. For some reason people don't seem to be aware of income-based repayment and are always talking about how their student loans are holding them back, i'm not sure why but I'd guess like any program, the default settings are what most people stick with.

</comment><comment><USER44> If 18 year olds aren't mature enough to enter into financial agreements, or purchase handguns, or drink alcohol how could the possibly be mature enough to vote? Or get married? Or join the army?

Either you're an adult at 18 or not. The 18-21 (maybe 25 for rental cars) grey zone is bullshit.

</comment><comment><USER45> I didn't realize how crazy a number this is until I did some math. Sanders proposed to fund it through taxes on Wall Street. Maybe that's a good plan, but let's see what it would mean if we funded it as a tax on each H1B. Currently there are 350,000 H1B. Let's say that their spouses work as well, so we are up to 700,000 jobs (yes, I know the rules have changed recently) Let's then say that we want to pay off the $1.6T just by taxing those jobs over the next 10 years. That comes out to $228k per H1B per year for the next 10 years. So, taxing H1B alone isn't going to do it. What about raising the estate tax for the next 10 years?

<comment><USER46> Some of the taxes on Wall Street included stuff like a 1% tax on bonds, 0.05% tax on derivatives

Pretty sure Sanders is also in favor of higher estate taxes. Even Clinton was

</comment></comment><comment><USER47> Just too many questions at this point.

what about the ones who have already paid the entirety of its loan?

Isn't this problem a derivative of problem (insert costly higher education) here.

Shouldn't this also mean that education loan will become one of the easy way to get into college even if you dont want to?

What about the future generation? Its good to have free education in first place rather than giving out loans and taking it back.

India took a similar stance on Farmer's loan waivers and it neither fixed the issue nor corrected it.

Time to learn lessons.

</comment><comment><USER48> I know we in tech see all of our coworkers, friends and acquantences with degrees but only ~35% of US adults have a B.S. or higher. I'm not sure these people, the ones with the BS/MS/PHD degrees and can acquire the higher requirement jobs are the one that need to have their debts cancelled. At least Warren's plan attempted to be more reasonable about the limitations on income, relatively.

</comment><comment><USER49> Hopefully this just leads to free tuition in the US. People in other countries already make fun of us and say we "buy our degrees".

<comment><USER50> Does that mean people in other places are _forced_ to buy their degrees?

</comment></comment><comment><USER51> People who attend college are already at a huge advantage. (And yes, we certainly need skilled tradespeople.)

College grads do not need an even bigger edge.

</comment><comment><USER18> Can the US Government really "cancel" private debt (Debt a former/current student agreed to pay a private bank?)

<comment><USER52> Is it really private if it's backed by the government and immune to bankruptcy?

</comment></comment><comment><USER53> They'd be better to redefine every individual debt as having an interest cap, retrospectively applied.

</comment><comment><USER54> I see the debt forgiveness programs similar to decriminalizing marijuana and releasing inmates.

Yes, it's unfair that it's now decriminalized, you had to either serve partial or full time and suffer, but you probably knew the consequences of your actions. Maybe not fully but you had an idea.

Doing this entire debt forgiveness thing is to level the playing field. It's to unburden the people of the past of their fiscal sentence while unlocking the decriminalizing of college. People in the past would be pissed if they had to keep paying their loans (serving time) if it was all free now. People who already paid (served full) have it rough but it was a different time. You have to make the transition somehow.

Maybe my analogy sucks but I don't see how you can get buy in otherwise.

</comment><comment><USER55> This would certainly solve the problem where smart kids go to good but expensive schools, and then take on garbage consulting jobs so that they can pay off their loans.

</comment><comment><USER56> I believe Andrew Yang proposed something similar

</comment><comment><USER57> Why isn't this called populism?

</comment><comment><USER58> I feel like sometimes short-term solutions can undermine long-term solutions.

If the root of the issue is skyrocketing college cost due to lack of supply then this is going to reward all the consumers who weren't financially responsible (i.e. majored in something unprofitable), which in turn alleviates the market pressure on colleges to offer better value.

</comment><comment> King-Aaron In this thread: "I hate this idea because __I __paid money so other people should too! "

Note: I don't personally agree that wholesale cancellation of debts is necessarily the right thing to do - but this is the argument I'm seeing in this thread more than anything else.

</comment><comment><USER59> Sounds fine to me

</comment><comment><USER60> Although I do think that education should be mostly free (which also means that the university degrees will be at according to the country needs... so there it goes most liberal arts degrees out the window), I think it's a very bad idea to change the rules of the game ad posteriori.

We can't trust a state that just keeps changing the rules like this.

</comment><comment><USER61> Sanders is a movement candidate.

People who want real change should support him

<comment><USER62> You should also consider if the changes he wants are the changes you want, right?

</comment></comment><comment><USER63> Wish I would have known this before I served 6 years in the military to get my GI bill to go to college. Is this ridiculous to anyone else?</comment>


Is Computer Science Dead? - <AUTHOR> http://www.bcs.org/server.php?show=ConWebDoc.9662 <comment><USER2> Holy crap this is one of the most retarded articles about CS I've seen in a while.

If the premis is that cs programs are out of date, then yes, the article has a point. If the premis is that everything in software has been "done" and there's nothing interesting left to do, then it is completely ridiculous.

<comment><USER3> What is left that is interesting to do in CS? Why is it "completely ridiculous" to suggest that everything interesting in CS has been done? Disprove it by example.

<comment><USER2> Use of parallel processing is still in its infancy. Virtual reality is still in its infancy. Speech processing is still in its infancy. Wait ... was that comment a joke?

<comment><USER3> I'm wondering if this reply is a joke because none of those areas are still in their infancy, especially parallel processing and speech processing. If you really meant to say that their potential hasn't been realized, then is it possible that expectation levels were too high to begin with? Same thing with higher level programming languages. How long have people been working on ML, Haskell, LISP, etc? What you really mean is natural language programming languages, like English, Chinese, etc. as programming languages.

The flip side is that some problems that were thought to be easy to solve may, in fact, be unsolvable (practically or theoretically). Computer vision is a good example of this.

I'm not trying to start a war or play devil's advocate for the sake of playing. My comments come from a real place. I have a PhD in computer science and was a professor in the field at a top university in the US. As sobering as it is to think about, I have serious concerns about CS because the problem landscape looks a little flat. The first mountain was computation (e.g., microprocessors), then usability, then networking/communications. What's next? I believe a big breakthrough in established fields like AI, VR, etc. are low probability using existing computational models, the weak proof being that a lot of very bright people have been working on these hard problems for a very long time and advances appear to be small and incremental. I don't know if QC will hold any promises in this area, maybe so.

<comment><USER2> If speech processing is not in it's infancy, why can't my laptop tell how I'm feeling by listening to my voice? I seriously doubt you think there's no way to accomplish that.

Perhaps we are not talking about the same thing? The tone of the article was that students were being turned away from CS as a major because they felt nothing new was happening. In response to that I'm talking more about applications of these technologies. The applications of parallel processing haven't even begun to be tapped out. Same with the applications of speech processing.

I once used gp to create a soccer bot for the robocup. It took hours to train it to even kick the ball on my iMac running Mandrake. With more advanced use of parallel processing I could have trained a much more sophisticated bot -- but that was not available to me at the time.

As for the theory of computation, perhaps that field is completely tapped out. I have no idea -- you would probably know better than I.

Perhaps you're right. Maybe all the programs have been written (theoretically). Perhaps there's nothing left to be done.

Then again, computer science has only been around since the mid 20th century. Chemistry and physics have been around much much longer. It just seems that it's a bit too early to call.</comment></comment></comment></comment></comment>


Tell HN: #HNBeginners on irc.freenode.net for beginning hackers - <AUTHOR>

Hi HN! I was motivated to start an IRC channel dedicated to people who were beginning to program from my earlier post. I think it would be great to have a place where we can all come together and get started.<p>If you're a beginning hacker and looking for others to help you or just a place to hang out, feel free to join in. Looking forward to hearing from you! <comment><USER2> Yeah, I think this could be a great way for people to learn. Perhaps some of the hackers from the #startups channel can hang there and offer their hacking wisdom.

<comment><USER3> I joined for that reason exactly. There's a whole lot of knowledge in #startups, but there are very few beginners. Hopefully the new channel brings in some fresh blood, and we can help them out.</comment></comment>


Ask News.YC: How hard was it to learn to be a self-starter? - <AUTHOR>

From http://paulgraham.com/sfp.html: "I could see that from how the founders' attitudes changed during the summer. Most were emerging from twenty or so years of being told what to do. They seemed a little surprised at having total freedom. But they grew into it really quickly; some of these guys now seem about four inches taller (metaphorically) than they did at the beginning of the summer."
I've been sending my kids to a private Montessori school where they learn to be self-starters.  I'm concerned that next year I may have to send them to public school.  For those of you who spent 20 years being told what to do, how hard was it to transition to self-starter mode? <comment><USER2> I'm 40 and still learning to be a self-finisher ;) I think this why start-ups need co-founders.

There seems to be some correlation between people who are natural self- starters having problems finishing things. I think the opposite is true as well, people who are naturally good at finishing things seem tooften have a harder time of "thinking outside the box", which is often a predicate to starting something.

So, when I say natural, do I mean you're born slanted one way or does it happen in early childhood development? My son is close to 4 now. He goes to a school with some similarities to the Montessori program (I'm in Shanghai, my son's specialty school is dramatic arts focused and tries to get him to express himself well). I have some of the same concerns about raising children as you express. I think the whole self-starter behavior is learned and can be sown at an early age. I think the "finishing things" behavior is also best to be sown in early. But school isn't the only and maybe not the best source of learning...

I'm a lifetime entrepreneur. Why? Its what I experienced...my father ran his own businesses. Every time I would see him (he didn't raise me full time) he had some business. His father was a lifetime entrepreneur. My mother's father was a highly successful lifetime self-made-businessman. I think these male role models in my childhood directed me more than any school did.

</comment><comment><USER3> I spent my whole education in public school, but I also had a sort of "counter example" from my dad who has been self-employed since I can remember. Almost instinctively, I opted for self-employment even while still in high school.

I think the examples and alternatives are the most important thing. I find it hard to believe that it was just in my nature that I'm more independent than many others, as many would like to believe esp. from what they've been told their whole lives. I feel strongly it's something that can be learned, and as long as that spirit is encouraged I imagine your kids will be fine. By the sound of it, you're already aware and active in teaching this spirit, so you probably have nothing to worry about :)

</comment><comment><USER4> I quit my job 6 months ago to do my own thing and its been a hard transition. The basics get me all the time - waking up early; going to bed before midnight; surfing the net; putting together daily task lists, etc. A few things that are working for me are:

1\. I hired a really good business coach.

2\. I have big goals that are very short term - like 2-3 months. So my "big" goal now is to close the year at a certain revenue level.

3\. Although I work from home, I try to have 1-2 very, very packed days that involve outside the home stuff related to my work.

The struggle continues though and I went to private schools from kindergarten to college.

<comment><USER5> Where did you look for your business coach?

<comment><USER4> I got lucky - I found him while networking - I was not really looking for a coach, but he helped me find new business so often that I decided to work with him professionally.

</comment></comment></comment><comment><USER6> Bruce, I spent all of my years in the (Canadian) public education system.

The trick is to be supportive, as my parents were, of not letting the school get in the way of what the kids want to do.

My kid is on his way to a mastodon tusk excavation this weekend. Crazy.

</comment><comment><USER7> Sadly, some people will never make the transition, but for me, reality hit when I committed to start my startup directly out of college. Once you've jumped in with both feet, you learn quite quickly how to be a self-starter. You learn that to get things done, you need to teach yourself the fine art of time management and to keep up with those around you, you need to have an intellectual curiosity which drives you to learn and innovate on a daily basis.

<comment><USER3> Absolutely. Jumping in (and having no safety net!) really does work. Nothing makes you succeed like necessity, kinda like a survival instinct I suppose. The key is finding the right set of influences that will increase the odds, in his case for his kids, of them taking a real leap.

This is why I like some of the ideas behind John Taylor Gatto's writing, especially about how kids need to have enough freedom and independence to challenge themselves, as opposed to being challenged from an authority. I think that's a crucial step in a kid, whether they realize it or not, jumping into something head first and seeing if they can swim so to speak.

</comment></comment><comment><USER8> Ive always had a f-u attitude. I never listened to the teachers at school. It started in middle school, I realized my grandfather owned his own business and was his own boss. In high school I slept in class except when an assignment was due, i skipped class and came to school wasted.

At that point, I started reading books (I was about 15), my first was rich dad poor dad (which had no real substance besides widening my prospective). Then I started reading real estate books, then 'business' books, automotive books, medical books, biographies, books on philosophy & finally programming books (where ie settled for now). Along with that I started making friends with the 'smart' & 'creative' kids at school, which led to meeting 'rich' & 'successful' people and being able to observe, what I thought, were their strong and weak points.

I feel that 'self-starting' comes from awareness that you can do whatever you want and become successful. How you reach this awareness, I'm not sure (my path was basically family, books, new people).

disclosure: i am on my mobile, so my grammar and spelling may be more off than usual.

</comment><comment><USER9> I went to public school but in the meantime taught myself computer programming, drawing, photography, and other subjects I was interested in. And I've worked for myself ever since graduating from college. So I'd say that attending a public school does not preclude becoming a self-starter.

</comment><comment><USER10> I am in this exact position (graduating college in 8 weeks), so I guess I'll give this answer a shot.

I think that you need to encourage you child to find activities where he/she can learn how to learn by himself/herself. For me, that was debate. We had no coach, we had no teachers, it was just a bunch of kids and books, taking on the best teams in the nation. Or perhaps the Robotics club, or some sort of community service outlet, these are all great activities that build great people and self-starting skills.

You can also encourage him/her to figure out much earlier what his/her passions are, if he's/she's young enough, perhaps get him/her to read books on different professions and encourage him/her to learn about them by himself/herself.

As the internet becomes more pervasive, it has become a lot easier to learn online and off, but at the end of the day, I think that being a self-starter requires a lot of support from friends and family and the drive and passion to get what is important. So even by asking this board, you children should be in good hands.

PS. I went to public school, and it was an awesome experience.

</comment><comment><USER11> I don't think you can truely learn to be a self-starters. Being a self-starter myself, I have friends who just don't have the drive to do it themselves, even after knowing/seeing that it's the only way to get things done. Thus I'm convinced that this drive is mostly genetic. Plus, isn't the definition of a self-starter someone who accomplishes things on his own without prior instruction? Then being a self-starter is independent of the amount of instructions. If anything I'd throw my kids in public school to make them better self-starters, because self-starters have to learn to keep that drive going even when the mainstream population are followers.

That is not to say you can't learn the trades of being a self-starters, such as discipline, progress logging, mini-goal management, lauch-then-iterate, etc. But that comes with experience. I won't even attempt to teach these things to kids under 12.

</comment><comment><USER12> I'm a terrible task manager and (though I've never been diagnosed) am quite attention deficit. But, I've learned that I'd rather force myself to get good at those things than have to take orders from someone.

Paul Allen's book helped me a lot. Having a business partner that is a natural self-started helps a lot too.

You also have to learn your limits. For example, no matter how hard I try, I _know_ that I can't work well at home. I get too distracted and I'm not productive. So, I don't even try. I've always had an office.

</comment><comment><USER13> I learned to be a self-starter from a friend who was apparently born that way.

You don't have to pay for Montessori for your kids to be self-starters. There have to be other ways to go about this. In addition, I think you're focusing too much on one aspect of their lives. What about integrity? What about determination? What about curiosity? What about attention to detail? Humility? Passion? Ambition? There are too many desirable traits to focus too much on a single one.

<comment><AUTHOR> Other traits are desirable, but I asked about this one here because I thought people might have firsthand experience overcoming problems with it, and also because it's the trait most threatened by quitting Montessori.

</comment></comment><comment><USER14> In respect to being a "self-starter," I believe that schooling doesn't matter. You just need creativity and discipline. And good for you for sending them to public school; some here may think I'm off my rocker, but I think that public schools are a superior learning environment (for social skills, pragmatism, etc.).

</comment><comment><USER15> To be honest. It took a lot of hard work.

I have learned HTML, CSS, PHP, Unix and other technologies from scratch for the past four years and still have a lot to learn. As long as you have the passion for learning you will be a successful "self starter".

</comment><comment><USER16> Let your kids do what they want to do.

<comment><USER17> if you did that, obese kids would be the norm, school (if kids went at all) would end up teaching the finer points of getting to the next level of supermario. Kids need guidance, but also a forum for innovation.

<comment><USER18> i think you missed the subtlety of travisjeffery's post. the montessori method of teaching is all about "Let your kids do what they want to do.". most young children have a natural "i'm full" signal that prevents obesity (any parent knows this). most kids are naturally curious. many of our greatest historical thinkers did not attend school and had lots of "do what you want" time. the "let kids do what they want" works surprisingly well when they have opportunities to explore and good role models.

my only other addition to the travisjefferies post is "and allow children to fail". too often we don't allow children to learn from their failures. this is part of being a "self starter". you don't fear failure because it has happened so many times though personal experimentation that you have an intrinsic understanding that "it's no big deal, i'll eventually figure it out".

</comment></comment></comment><comment><USER19> You don't "learn", "teach", or "transition" into "self-starter" mode; its something you're born with.</comment>