skysight-inc/HackerNews huggingface dataset:
This shouldn't replace understanding the problem domain and carefully planning before tackling a moderate to large scale project. Yes, one shouldn't tune each individual piece with unjustified optimization but the high level design should be thoughtfully laid out prior to hammering out large swaths of code.

Too many developers plow forward in a brute force manner creating unmanageable inconsistent messes and use rules like these to justify their lousy (lack of) design choices.

My rules:

1. Understand the problem domain.

2. Design flexible solution using common patterns.

3. Stub out skeleton of system encompassing majority of specs.

4. Revisit design and consider all conceivable exceptions and outlier and tweak design as necessary.

5. Review above work with others and tweak design further as necessary.

6. Coding.
> Sorry about that.

What?

You basically stole a bunch of data without attribution to forge the credibility of your service and now you are just waving it off as not a big deal? What's wrong with you? I see no other option but to flag you the hell off the front page.
Obviously not everything that Malcolm Gladwell says is bullshit, that was hyperoble. If he said the sky was blue I wouldn't disbelieve him, but I would check my watch to see if it's sunrise or sunset. It's also ridiculous to jump from "anything Malcolm Gladwell says is bullshit" to discounting everything he quotes, cites or references. He draws conclusions and makes cases from these things, in a way that is, frankly, not justified.

Also, what are you wary about? You can check every statement I've made on this subject by reading the article. It's not long. You don't have to bother deciding whether or not to be suspicious of me.
Calm down! Nobody in the industry knows everything about everything :). It's OK that you feel a little overwhelmed, because there is so much to learn. At your age, you can take your time, learn a little of everything, discover what is it that you like the most, and focus on it. And I'm referring to domains, not languages or techniques: if you're into web backends, there is not that much difference between, say, Python and Ruby, even if knowing both will make you appreciate the advantages and shortcomings of each one.

In the end, if you work steadily and know where to apply for a job, getting it is easier than it sounds (nobody's days have more than 24 hours, and if you started that early, chances are that you're quite better than your age's average). Just be aware that, with all that many languages, frameworks, etc. there will always be people (maybe even younger than you) that know more than you about some of them.
I'm a let-it-all-hang-out kind of guy, but there exists adequate specificity in my comment to narrow it down to less than five identifiable people. Neither they nor their employers have OKed me putting their salary on the public Internet. Accordingly, I politely decline to be more specific than I am currently being. (The bookends I mentioned earlier were intended to communicate "Between $30k and $100k.")
I think the place you can deliver the most value is strategy and leadership. There is a tremendous dearth of good communicators in this space.

I barely code anymore - the labour overseas is so cheap I can't justify spending 8 hours trying to figure out some bug ... But I've found joy in managing teams and coming up with plans and strategies and helping clients get results and things like that.

In fact it's far more enjoyable: when I was doing all the work the limit on how many of my ideas could come to fruition was my own time. Now I am able to see more of my plans and ideas come to life more quickly and that's the part that I always really enjoyed.

I've let go of trying to keep up with specific technological details... They all sort of fade into insignificance and you realise that it's all sort of the same stuff; different tactics but the same strategies. Old folks win by being better at strategy.

That's how it works in a lot of fields where the energy of youth is an advantage. I don't think tech and/or business is any different.
If I'm an English business buying ads from an English sales team in an English office and there's an artificial final step in that process (someone in an Irish office stamps a form) then that feels like tax avoidance.

No one is asking for companies to be taxed twice.

But there is a strong concept in England of "not taking the piss" - people don't mind reducing your tax burden. That's expected behaviour. Reducing your burden from 50% to 38% is probably fine with most people. Reducing your burden from 40% to 3% is not fine with most people.

> but in their desperate quest to squeeze ever more blood out of the stone,

These are huge, very profitable, businesses that avoid tax in most jurisdictions. Governments are not squeezing blood from stones; they just want a few drips of blood from the very juicy blood-soaked sponge.
Also see http://hckrnews.com/
I was contracting about two years ago and charged €60/h. I'd charge closer to €100/h or more if I did it now.

you should not allow a client to try to renegotiate price after the work has been delivered

Completely agree. The "Fuck You: Pay Me" video has some good tips on contracts and making sure additional work is billed separately etc. The price should be set in stone before any work begins.
If anyone is thinking to build their own cabinets - I would suggest checking out
https://www.parts-express.com/cat/speaker-components/4
I have built a few speakers from scratch, including line arrays using them as my source. They are kind of like the mono price of speaker parts.
Thank you for checking it out!

Not in particular apart from the fact that my first web development project ever which I put out last December was done in Meteor: http://mixtape.meteor.com. It was a collaborative YouTube playlist app.

Since then I've worked with other more mature MVC frameworks, but I find that I'm still able to produce my weekend projects a lot faster using Meteor. I also like the free hosting (and easy deployment) on a .meteor domain it offers.
Awesome! Just started on LeanGains myself and will definitely check the app out. Glad to hear its working well for you.
Since Y Combinator has been redesigned, I hope they redesign HN and make it responsive and modern.
There will always be more frameworks, languages and technologies to learn. Don't freak out. It is impossible to keep up with all of them just accept that you can never know everything.

I'd recommend a 'wide and deep' strategy, try and get an overview of as much as you can but specialize in a couple.
Relax.

One of the lovely things about being older is having the confidence to be able to be able to point out that the latest fad is just a warmed-over rehash of something old.

It's important to keep up with the new things, but the fact of the matter is that there is very little in the world of software development that's actually new. Swift? Please. If you know ML (1970's), Smalltalk (1980), and Objective-C (1983), you know 95% of what there is to know about Swift. If you know Smalltalk, you know about 90% of what you need to about Java, and with those two, you know 98% of what you need to about Dart.

Learn the big important things, focus on principles rather than specific implementations, and you'll realize that there's very little new under the sun. At this age, while your brain is still limber, learn as much mathematics and theory as you can. You will probably not use Dart 10 years from now. You can bet you'll use the knowledge you picked up in your combinatorics or algorithms courses.
To see a young person say this bolsters my opinion that technology is moving too fast.

Everybody is in such a rush to learn new frameworks, new languages, new toolsets; nobody is learning how to actually _program_. I've worked with people who looked down on me for not knowing WeekOldFramework, but who couldn't architect a simple CRUD application to save their lives.

I feel like so many developers have this "quantity over quality" attitude about knowledge, and it's hurting the industry. With such shallow knowledge, we're doomed to never learn from history and forever write bad software.

Get off my lawn, etc.
It's going to be okay. It sounds like your problem is that you want to learn everything- and at 17, that's not really a problem. You can be successful in this industry by choosing any two (ok, almost any two) of the technologies you listed above, and focusing on them for a couple years. If they last longer than that, great.

You certainly don't need to keep up with all of the latest and greatest JS frameworks and understand machine learning to be successful :)
This is my #1 biggest feature request for all map apps. I would also like to select a start and endpoint and search for anything along any of the possible routes. I need to go from X to Y but I'd like to stop for ice cream along the way back - what are the best routes that have ice cream shops near them, and which ice cream shops are they?
You are assuming the natural part. The original comment was simply about dominant view.

Could it be that it is strictly societal based? Yeah, why not? Does that change things? Remember, the desire is to get women into technology. Not to change societal norms on anything else.
Which country does the most good for the world? [video]
Both Gentoo and GTK2 were released in 2002.
It's easy to direct and manipulate outrage. Just look at the dailymail homepage.People getting angry at meaningless stuff.

The way the powerfull keep us in check is by saturating our brains with "fake news" and propaguanda.
DevOps in my area means you do everything except clean the bathrooms for 1/2 the salary of whoever you are replacing, and work at least 10-12hrs per day because unlikely you can fit in customer support, chef/ansible/puppet deployment, databases, front and back end development, testing and debugging, presentations and piles of internal paperwork and emails in 8 hours.
You need to realize that the EU is not federal in the sense like the USA - the EU and its member states have a much more complicated relationship. The EU is a supranational entity and the EU Commission is the executive body of the EU alone. EU institutions like the EU Commission, the European Court of Justice etc. can sometimes have agendas that are NOT part of the agendas of the EU's member states.

So Point 1): Clear NO. The EU does not have the power to change tax laws, that is in the domain of the national EU member states. That is actually what the whole article is about - that the EU commission is using the trick of declaring tax advantages as a form of "state aid", because then it falls under EU competition law, for which the EU commission's DG Competition does have a competence. For the same reason the LIBOR price fixing that is investigated in the USA by the SEC was dealt with by the EU's DG Competition under antitrust law - because otherwise the EU probably wouldn't have been able to act.

Point 2): No it is not easily in the power of the EU to change the data protection regulations - there is actually a huge fight going on at the moment about the new EU data protection regulation, mainly because Germany is blocking it.

Point 3): The USA and the EU are two different organizations with different legal systems. Because something does not violate US antitrust law doesn't mean it is ok under European antitrust law - Microsoft has already paid billions of fines under EU competition law for offenses that were dropped under US law. Moreover there is the famous Honeywell merger, that went through in the US and then got blocked in the EU.
This is just the first prototype, product of 3 to 4 hours. If I have time, I plan to add anything on the original hacker news page that I can.
This is a very personal/subjective issue. I have no problem at all being productive for 8-12 hours a day. Probably in part because I love what I do.
> the students were typically too impatient to spend 20 minutes thinking about the problem before coding, but could spend 20-30 hours on a single assignment. Odd combination of work ethic and lack of patience...

I wouldn't call it a lack of patience, per se. In most modern models of the brain, exercising executive control to think abstractly ("using System 2") expends energy for as long as you're doing it, and the explanation for many of the brain's inherent shortcuts and biases is to to prevent you from switching into System 2 for longer than absolutely necessary.

I have a feeling that a large part of what is characterized as "intelligence" is simply the brain being willing, for whatever reason, to switch into System 2 "mode" more often, and stay in it for longer.
I've got 10 years on you, and while that still isn't much, I can at least give you some advice on how to deal with this.

Nobody can keep up with the entire industry. It seems like you're trying to know everything about everything, and that's simply not possible. What is possible is learning a little bit about everything. If you see a word, technology or concept on HN that you don't know about, spend 30 seconds googling it. Usually, 30 seconds is enough to get a basic idea of what it is about. The more you do this, the more you will be able to relate things to each other, and you'll be able to intuit a lot of context from just a single-line description of something.

Don't try to learn a lot of languages. When you're 17, it's useless to know VB, C++, PHP, C#, Lisp, swift, dart, python AND ruby. Pick one you now know and like, and stick to it for a while. Become a genuinely good coder in one language, and you'll be able to pick up another in no time. Knowing one language really well also teaches you loads of the basic concepts that you can use to understand other technologies. It doesn't matter if it's Angular, RabbitMQ or Big Data, you need a concept of the problem they're trying to solve before you will understand them properly.

Once you have this nailed down, you can learn about whatever you like. Every single thing you learn, whether cursory or in-depth, will help you understand everything else better.

In short, don't try to be a renaissance man, but be a T-shaped person (http://darrennegraeff.com/the-importance-of-t-shaped-individ...)
I've been a runner all my life, and I've run just a couple sub-40:00 10k's.

I have found that I can stay in shape to run a 10k in the low 40's fairly easily; aside from running regularly and eating reasonably, I don't have to work particularly hard at running fast. But as soon as I get in shape to run under 40:00, I have to start paying more attention to sleep. I've pushed myself too hard a number of times, and ended up with bronchitis and pneumonia from not letting my body recover enough. It was always odd to turn in the fastest times in my life just as a serious bronchial infection was taking hold.

I have since learned to let a run or two go when I'm feeling tired, and sleep more that day instead. I wish you luck; running is such a great release from technical work, and is often a good source of breakthroughs on technical problems you're trying to figure out.
Not everyone upgrades their phone every year or two. I know plenty of people who still have an Android 2.x smartphone because they have no need to upgrade.

(That said, I don't think many of them would play this game.)
Yea very true. I'd also say that learning new things has only gotten easier with experience. In my experience not only have I been able to get up to speed faster, but often it is easier to spot the pitfalls with a new technology before even using it.
For the old guys in the room who want a simple way to add AJAX/rich client functionality that stays true to the original web development model:

http://intercoolerjs.org

(NB, basecamp2 was built in this way. So it is possible to build a fairly rich app without the complexity of client side MVC.)
CIA employee’s quest to release information ‘destroyed my entire career’
This series of articles goes into more detail: http://chris-taylor.github.io/blog/2013/02/10/the-algebra-of... . He doesn't get to derivatives until the third part, but it's all (IMO) fascinating, and the concepts of the first two are necessary to understand the calculus part.
I literally took the same path. Vb6, c++, games, Web development, and beyond. Just keep going, you'll be fine.
> conclude that Intelligence does not exist

You are going about it backwards. Intelligence obviously does exist, yet when we try to figure out what makes it tick each step seems banal.

Your conclusion is that intelligence might not exist, mine is that defining intelligence by the parts that make it up is incorrect. Intelligence is some sort of super-process that is not so easy to break down.

It's like how we share 98% of DNA with an ape - so clearly there is only a 2% difference. Except not. There is a huge difference, an unmeasurable difference, which means that classifying DNA by percent similarity in base pairs is an incorrect approach.
Cool! Great feature HN!
That's a fair point, although long chains of forwarded methods could be indicative of poor design - writing inheritance via composition in much the same way that one may write Lisp via Java. Granted, it's very easy to say that this is a bad idea, but that's part of the art of good OO design. :-)

I ran into this at work recently when refactoring an inheritance hierarchy. My initial instincts led me towards many forwarding calls, but after taking some time to reflect on the problem further, I found that many were no longer needed given the smaller scope of each class.
> They've been looking at the x-rays of laptops for twenty years, and now they suddenly start worrying about bombs being built into one?

Batteries on laptops and cell phones look like a big opaque block on x-rays[0]. And 6 grams of PETN can do a lot of damage[1].

New intelligence indicates that the AQAP bombmaker responsible for the underwear bomber and the printer bomber has figured out how to replace the battery with a bomb. It's not visible on x-ray, and it's sealed so it won't trigger the explosive trace detection equipment[2] either.

> And why aren't they worried about the cargo baggage which also contains electronic devices that are potentially uncharged?

Presumably these devices would need to be held directly against the fuselage as the underwear bomber failed to do[3], so they'd need to be carried by a passenger instead of in a random location in the baggage compartment.

And it's not about whether the battery is charged, it's about whether the device has power at all. Naturally TSA countermeasures are trivially circumvented. Replace the optical drive with a second battery, it still powers on even if the first battery has been replaced with a bomb.

Some reports say they're looking to surgically implant a device under the skin[4]. How do you screen for that?

[0] http://www.petergof.com/x-ray/images/profiler.jpg

[1] http://edition.cnn.com/video/data/2.0/video/world/2009/12/28... (video)

[2] http://media.cmgdigital.com/shared/img/photos/2012/08/11/8d/...

[3] http://www.slate.com/articles/news_and_politics/explainer/20...

[4] http://www.bangkokpost.com/news/world/418791/spotlight-on-qa...
Devops actually makes things a little easier I think. With Ansible, setting up a server on AWS feels a little like maintaining a vimrc file. Get a starter playbook from someone and run that to setup a server on AWS. Then you modify as needed as you go through your days as a developer. The great thing about Ansible playbooks is that it codifies the setup. You have a "recipe" that you can modify and run as needed. For me, this is much better than the days where I would set up a VPS "firing from the hip." If you had me setup 10 different servers, I would have set them up 10 different ways.

I think for development knowledge in general, it might be good to look at the following people...

http://www.kalzumeus.com/ (patio11 here)

http://brennandunn.com/

http://unicornfree.com/

Take a read through. For these guys, it's all about products. In the end, that's all that matters. Maybe try for a change of perspective where you look at your skills in terms of products.

In Amazon, there are probably projects where they lock developers in dark basements to learn arcane crafts so specialized that these engineers forget how to spell their name. These engineers would probably struggle just the same as you if the need for these specialties were to disappear. Faced with the need to "retool" - would they be able to do it? Some might, some might not.

There is (and probably will be for quite some time) still a lot of need for people doing the sort of "LAMP" development that you cut your teeth on. Just because the stack wouldn't run an F-35 doesn't mean it isn't valuable.

So, look at what you know in terms of business models rather than actual skills. Focus more on the product which people need and then fill in the skills.

Do people need AWS and Devops? The client probably isn't going to fuss over this. The client just wants to ship a product. You handle the details.

Most businesses start here and then they change as they get more successful. These projects still need the general guys to come in and get the first iteration shipped. Then later they might need to bring in more specialized engineers to deal with more specific issues. Eventually even the founders may hand over the reigns to "grown up" leadership.

So, you need to figure out where your "market fit" is. You can't be everything to everyone (though at one time it seemed like we could be.) Once you find that, then just carve out some time to continually develop that and keep an eye out on where it's going. Maybe you could even have a side project which you could use as a plan B. You don't have to spend so much time on it that you are having to take away from other important things. Just plan a good hour of focus at certain regular intervals , even if it's just an hour every couple of weeks. You might find that it develops in an interesting direction and you may want to pursue it further.

Further reading...

http://letsworkshop.com/freelance-as-a-service/
Another interesting thought: bullet-time would seem colder. Depending on how things were supposed to be working (let's say your whole body was put into a different relativistic reference frame from everything around you), this would mean that things like air would become liquid/solid and impossible to move through.

Interestingly, this would mean that you could have a civilization of Speedsters living comfortably inside a star.
I wish it was more heavily curated so a beginner could have a better defined starting path - my experience with go over the last week has mostly been googling libraries to get pros/cons/gauge popularity.
I agree SO much with all this. "Working 40 hours a week is a waste of my life" is also how I feel, but a lot of people will inevitably call you lazy. And yes, it's very infuriating that part-time jobs don't pay enough to live (at least in my country), while full-time ones leave you with money you don't have anything to spend it, but little time.
Expanding on shanemhansen's point, where in Python subclassing is just a matter of mentioning the superclass in the right place in the class construct but composition requires substantial boilerplate, in Go, composition is just a matter of mentioning the composed element in the struct definition and inheritance requires a lot of manual boilerplate. It isn't technically impossible to implement something that is as much "inheritance" as it is in Perl, or especially as much "inheritance" as it is in Javascript, which I say with full knowledge of the object model in Javascript, but you will have to implement it yourself. (Courtesy of the lack of generics you won't even be able to factor out the boilerplate very well.) Whereas composing two things together is as easy as:

type TwoComposedThings struct {
ThingOne
ThingTwo
}

where ThingOne and ThingTwo are types. If ThingOne and ThingTwo do not have any conflicting method names, you're done. (If they do, you can actually still compile but when you try to use a conflicting name you'll have to manually disambiguate, and some subtleties could arise.)
Ew. How were you incorporated?