Winning the Information War - <AUTHOR> http://cepa.org/reports/winning-the-Information-War <comment><USER2> Maybe the first step in fighting against disinformation is to stop calling it and thinking of it as an, "Information War," as if it's something with sides that's meant to be won.

The news these days is all about "fake news" and how we need stop it, but none of those information outlets seem to acknowledge the bias and falsehood in their own reporting. That's not to say there isn't terrible misinformation on the internet, but all this media buzz regard it seems like an overreaction which could lead down a dangerous road of censorship itself. If the goal really is to advance the truth, then shouldn't the best way of doing that be to focus on telling the truth rather than on silencing those not?

When ever I hear journalists saying we can stop misinformation by quashing all those other journalists telling lies, all I can think of is soldiers insisting we can reach world peace if only we could just kill all our "war-mongering" enemies.

<comment><USER3> There has been misinformation on the internet ever since the internet first started. And before that National Enquirer at check out stands throughout America.

It's a problem now why? Maybe because people didn't do what major media wanted and this is alarming?

The fact there is a such an outcry about "fake news" lately bothers me a lot more than the existence of fake news.

<comment><USER4> It's a problem because "major media says X" doesn't imply that there's some big corrupt cabal of conspirators that would unfairly benefit from X, but a huge number of people seem to think that's exactly what it means.

<comment><USER5> That's the weakest argument in favor of censorship I've ever seen.

<comment><USER4> It's not an argument for anything.

</comment></comment></comment></comment></comment><comment><USER6> If the commons of national agreement on truth, reality, and facts can be disrupted then democracy, as an effective tool of government, is largely over.

 _If there is one common thread in the Kremlin's many narratives it is the use of conspiratorial discourse and a strategic use of disinformation to trash the information space, break trust, increase polarization and undermine the public space for democratic debate: This is a war on information rather than an "information war."_

<comment><USER3> This is why it's important to be able to trust the government. For this to happen, the government (and government friendly media) must not be in the habit of breaking trust.

Anne Applebaum and the other contributes to this piece blame the Russians for fracturing the agreement on truth in the West but I feel it much more likely that the Washington Post (for whom Applebaum writes) and the State Department (among others) have a much greater share of the blame in the mistrust. Case in point, the huge number of stories in Washington Post promoting the second Iraq war. Or more recently, the Hillary promotion and Trump slamming campaign. I saw a very apt name for Washington Post in a comment section "Pravda on the Potomac".

They really should clean up their act and stop the (obviously not working at this point) propaganda before pointing fingers.

<comment><USER7> Putin would like it if everyone thought his government is just great, but he knows he can't get that to happen. So what he is doing instead is having his internet propaganda organization push the line that you can't trust any information source. That has the added benefit that if citizens give up deciding what to believe, then they will become apathetic and democracies will collapse, which would be very useful for his goals.

As for the Washington Post, I don't think it is always correct, but I do believe that it usually is sincerely trying to get at the truth.

<comment><USER8> > usually is sincerely trying to get at the truth

Good intentions are neither good outcomes nor good conduct. Incentives seem to trump intentions, and seem poorly aligned with the public interest.

Is this WP version[1] less bad than the LA Times version[2]? Yes. And it's in the entertainment, not the business section. But they still published it. And to be fair to the author, "Hollywood" is good at this game, and regularly suckers some journalist, sometimes quite senior ones, into doing one of these. But they still published it. And to be fair to Hollywood, a former Obama White House official described them as "extremists are people who talk only among themselves". But they still published it.

"Pravda on the Potomac" and "it usually is sincerely trying to get at the truth", do not seem necessarily inconsistent observations.

[1] [https://www.washingtonpost.com/entertainment/music/with- chan...](https://www.washingtonpost.com/entertainment/music/with-change-at- the-top-of-copyright-office-a-battle-brews-over-free- content/2016/11/07/a8c0b140-a4ea-11e6-8042-f4d111c862d1_story.html) [2] [http://www.latimes.com/business/la-fi-copyright- office-20161...](http://www.latimes.com/business/la-fi-copyright- office-20161109-story.html)

</comment></comment></comment></comment><comment><USER9> The article is so heavily handed in its one-sided condemnation of adversary nations, and the author refuses to look at the disinformation activities of his fatherland (besides saying it isn't doing enough and needs to "up its game").

Being candid about the abuse of information on all sides is a REQUIRED first step to discussing Information Warfare in a sensible way. Not doing it immediately introduces cherrypicking, and gives the impression to readership that there is one-sided activity that requires a one-sided response. This itself is disinformation.

I'm not sure we could expect anything else from a career propagandist (Peter Pomerantsev, the author) and think trying to start conceptualizing the propaganda war by reading in some serious way such particularly strategized output from a propagandist is a poor manner to start.

<comment><USER6> I'm confused by the mention of "refuses to look at the disinformation activities of his fatherland"... Peter Pomerantsev was born in Russia so I think you mean that he is too critical of their nouveau-agitprop techniques.

I don't love all the author's work, but it's hard to claim he doesn't know about modern disinformation or hasn't suggested that both sides do it.

[https://pando.com/2015/05/17/neocons-2-0-the-problem-with- pe...](https://pando.com/2015/05/17/neocons-2-0-the-problem-with-peter- pomerantsev/)

</comment></comment><comment><USER10> All of this Putin-phobia -- maybe justified -- is giving me a 1984 moment. He's starting to take on an Emmanuel Goldstein aura in the US.

Disinformation exposes weaknesses in trust, it does not create them.

Keep in mind the phrase, "Believe nothing you hear and only half of what you read", was popular before I was excreted from the bowels of the mid-20th century.

The term "yellow journalism" pre-dates the 20th century.

And while we can find some admirable examples where journalism discarded its proclaimed "focus on facts" to support a noble cause, and accelerate progress, a price had to be paid sometime down the road.

Because once you break trust on the facts, people will naturally question when you will break trust on intent.

</comment><comment><USER11> Cant really complain about exposing corruption

<comment><USER6> If the goal of exposing corruption is only to bring down one government and replace it with a kleptocracy defined by corruption... then yes, you can complain about asymmetric unproven claims of corruption.

For example the criminal next door who has evaded $100k in fines for dangerous antisocial activities (ie drove above the speed limit to work for the last 10 years) can't be trusted!</comment></comment>


Ask HN: Which Open Source projects are looking for maintainers? - <AUTHOR> High impact Open Source projects in dire need of maintainers / core collaborators?<p>Are there any lists maintained of such projects? <comment><USER2> I started putting together a list here: [https://www.sourcesort.com/zombies](https://www.sourcesort.com/zombies). Only a few projects on there at the moment though. I found projects which had 10 or more unresponded issues created since the project was last updated.

<comment><AUTHOR> Interesting. So are these the projects you came across or did you establish some way to find them?

<comment><USER2> I used the GitHub API search endpoint to find them and some extra code to filter them - searching for projects last updated more than 3 months ago with more than 5 open issues and more than 2/3 of open issues having had no response from a maintainer.

I was surprised by how few projects turned up actually, so I'll probably rethink this and update the list soon.

</comment></comment></comment><comment><USER3> [https://www.codeshelter.co/](https://www.codeshelter.co/)

"Code Shelter is a collective of volunteer software developers that aims to help with maintaining popular open source projects whose authors need a hand or don't have the time to maintain them any more."

<comment><USER4> Thank you for this! Looks like a good starting point, and a nice community.

<comment><USER3> HN discussion at [https://news.ycombinator.com/item?id=19199647](https://news.ycombinator.com/item?id=19199647) .

</comment></comment></comment><comment><USER5> [https://blogs.apache.org/logging/entry/apache_log4net_needs_...](https://blogs.apache.org/logging/entry/apache_log4net_needs_help)

</comment><comment><AUTHOR> [https://github.com/search?q=looking+for+maintainer](https://github.com/search?q=looking+for+maintainer)

Yields some interesting results

<comment><AUTHOR> [https://github.com/pickhardt/maintainers- wanted](https://github.com/pickhardt/maintainers-wanted)

Found this list via above search</comment></comment>


Emerging Market Catch-Up Set Back 'Decades' According to World Bank - <AUTHOR> http://www.ft.com/intl/cms/s/0/5d253a2c-2c99-11e6-bf8d-26294ad519fc.html#axzz4Azo9XJpC <comment><AUTHOR> Consider using the 'web' link to access the site if you're having trouble: [https://www.google.com/search?q=Emerging%20Market%20Catch- Up...](https://www.google.com/search?q=Emerging%20Market%20Catch- Up%20Set%20Back%20%E2%80%98Decades%E2%80%99%20According%20to%20World%20Bank)</comment>


Square to buy Weebly for $365M - <AUTHOR> https://www.cnbc.com/2018/04/26/square-to-buy-weebly-for-365-million.html <comment><USER2> Congratulations to David, Chris, and Dan! I've always thought Weebly was one of the best startups in our batch, and the top one I would have wanted to invest in had I been in a position to do so (and I've said so a bunch of times over the years, even very early on).

This is, I think, a smart move for Square. Stripe has been moving up the stack aggressively (and much faster than Square, who were very effective in the beginning, but kinda stopped innovating), making it easier and easier for people without a dedicated software team to build out an online sales channel. Weebly has a lot of that stack already built. You can build a website and sell things in a very short time with Weebly already. I imagine Square will be making the "sell things" part of it even more core to the experience.

And, businesses do not change payment processing often. If you lock them in when they're brand new and tiny and using something like Weebly, while also providing paths for growth, you'll probably keep them basically forever. We've rebuilt our website and ecommerce basically from the ground up four times since we launched the company a dozen years ago and have only changed payment providers once (maybe twice, I can't remember if we launched with Authorize.net and moved to PayPal soon after or if we switched before launch...partly based on ease of deployment and management). That's a lot of money made on that initial customer acquisition. To get businesses earlier than that, you need to have a really clear path from "I don't have a website at all" to "I have a website and can sell things with it."

Enjoy your private islands, or the next project, or whatever y'all decide to do next.

<comment><USER3> Thing is, when you start processing normal sums of money (>$200k/month), both Square and Stripe start to bleed you in fees. If your sub-$5k a month in volume both make sense to use as a processor, but as you get up there in volume, changing to any of their (much larger) competitors can easily halve that cost and save you a few grand a month in fees.

<comment><USER2> Most businesses starting on Weebly (or similar) will never grow over $200k/month. Most small business isn't like the tech industry...it doesn't scale exponentially once market fit is found. It scales based on number of widgets and number of employees and how many physical locations or whatever the business has, most small business growth is governed by the laws of physics.

<comment><USER4> Also, once a company reaches $200k/month they're likely to move to a more powerful ecommerce platform like Shopify.

<comment><USER5> Why is Spotify a better choice for that scale, snf not from the beginning, but only after that?

<comment><USER6> Weebly is likely to be simpler or more user-friendly for people just starting out. They might not know what level they will grow to yet, hence starting out with something more basic initially.

</comment></comment></comment></comment></comment></comment><comment><USER7> I assume this was a strategic move - Square seems to be buying businesses in adjacent markets that are more profitable than credit card processing and that are complementary to their offering.

I'm guessing that small local businesses tend to use website creators, and it's mostly profit (once you have a good tool).

Does anyone have any more insight?

<comment><USER8> According to Crunchbase Weebly has 50 million users and I'm guessing they're mostly small businesses which would all be perfect prospects for Square. Not a bad outcome for them as they sold for roughly 10X what they've raised.

Competitors Wix and Squarespace have raised much more money and would probably have been too rich for Square to buy. Wix is now a public company too.

<comment><USER9> > According to Crunchbase Weebly has 50 million users

I don't see that number, but Weebly cannot have 50M customers. That's a 1.5 order-of-magnutude error.

<comment><USER8> "Weebly was started in 2007 and currently powers more than 50 million entrepreneurs around the world"

[https://www.crunchbase.com/organization/weebly#section- overv...](https://www.crunchbase.com/organization/weebly#section-overview)

<comment><USER10> The TechCrunch article about the deal says they have 625,000 paid subscribers [https://techcrunch.com/2018/04/26/square-acquires- weebly/](https://techcrunch.com/2018/04/26/square-acquires-weebly/)

</comment></comment></comment></comment></comment><comment><USER11> My wife and I launched a small winery a couple of years ago and Weebly has been essential for our online sales. They were the only affordable e-commerce solution offering zipcode- and state-based shipping charges and sales tax. We actually tried starting out with Square's Online Store because we were already using their PoS stuff, but it was just a bit too raw to suit our needs.

Great move for Square IMO. Congrats to the Weebly team.

<comment><USER12> looks like the sales tax is powered by Avalara

</comment></comment><comment><USER13> I'm surprised that the price isn't higher. It was my understanding that Weebly is highly profitable, which would normally give them lots of leverage in any negotiation. What am I missing? Maybe there is a ridiculous amount of Square stock for the team on top of the price paid to shareholders? Or growth is flattening dramatically and they panicked?

<comment><USER14> It does seem low. I think all the stock compensation was included in the published amount. According to reports, Weebly raised a Series C in 2014 at $455m/$490m valuation. Competitor Wix which is public is currently valued at $3.9b on I would guess about 5x the revenues.

<comment><USER14> Note: Roelof Botha on BOD of both companies.

</comment></comment></comment><comment><USER15> As much as I don't want it (I'm a web developer after all), I'm surprised Facebook hasn't tried to compete deeper in this space yet. They already have a firm grasp on many businesses. So many local businesses in my city only have a Facebook page and don't have a website, or if they do it's extremely outdated (hasn't been updated in years and lacks search engine ranking). Facebook is the website for many local businesses.

All Facebook needs to do is add a few more features:

\- Online menus (most restaurants are just uploading a photo of their menus)

\- Online reservations, and online ordering (for delivery/pick-up)

\- Ecommerce store (payments, delivery, etc.) and management (inventory) for retail shops (boutiques, etc.)

<comment><USER16> Having just spent some time reviewing the market of what you just wrote on behalf of a consulting client, I can tell you that this market is ripe...

</comment></comment><comment><USER17> A bit of a disappointing exit for what was considered an IPO candidate. I think they only knew how to make a great product and were clotheslined by Squarespace and Wix's giant ad campaigns feeding a super optimized funnel management system.

</comment><comment><USER18> At first I thought it was Squarespace since they are in a similar market, but it seems to be the financial company Square. I wonder what their intentions are?

<comment><USER19> Verticals for small business. Now they're a one-stop-shop for payments _and_ a website.

<comment><USER20> This seems like a good way for them to differentiate against Stripe.

<comment><USER21> Square and Stripe fit very different markets, there's some overlap in both could be used to power eCommerce sites but Square mostly targets traditional merchants selling products and services, Stripe targets developers looking to add payments to their product (SaaS, online marketplaces, etc.)

Either way, this is a perfect fit for Square - they already offer simple "one- page" web stores for merchants, tying in a full-featured website or store instead makes a lot of sense.

</comment></comment></comment></comment><comment><USER22> I hope Square can accelerate Weebly's growth. It's disappointing that Wix has beaten them so badly in the starter website market because, in my experience and having used both backends, Weebly's sites are way better for the same amount of user effort.

</comment><comment><USER23> After reading about Weebly's growth on Hacker News, a few years ago I interviewed the founder about how they did it:

[https://mixergy.com/interviews/david-rusenko-weebly- intervie...](https://mixergy.com/interviews/david-rusenko-weebly-interview/)

<comment><USER23> I think the first time I really noticed a Weebly blog was on the bottom of Jessica Livingston's site: [http://www.foundersatwork.com/](http://www.foundersatwork.com/)

</comment></comment><comment><USER24> How come these card companies can have such huge margins !? It's effectively a 3% tax _on everything_ going directly to a small set of private businesses. The government should issue a government sponsored payment alternative with free transactions, which would also solve the problem with micro-transactions.

<comment><USER25> thats what Dodd Frank bill did. 0.5% on Debit cards

<comment><USER26> That's another why reason republicans and the banking cabal want to over-turn Dodd-Frank.

</comment></comment></comment><comment><USER27> They where evaluated 4 years ago at $455 Million. Raised $35 million on this evaluation.

[https://outline.com/EzRTkg](https://outline.com/EzRTkg)

</comment><comment><USER28> This is nice to hear. Weebly was how I built my first website, inspiring me to learn how to code. I first used Weebly to make a website for my "lawn mowing business" almost 10 years ago. I remember trying to edit CSS rules in terrible ways and enjoying it anyway on an old Dell laptop with 512 mb of RAM.

</comment><comment><USER29> Great exit for a team that hadn't raised much $ + great acquisition for Square given the easy upsell path to all its SMB customers.

For perspective, competitor Wix is a $4B market cap company at a ~$500M revenue run-rate. Shopify, which is quite different, has a $12B market cap at ~$1B run-rate. This is a massive market.

<comment><USER30> Great exit for the founders, horrible exit for the employees.

In 2014 Weebly was worth $455m [1]. 4 years later in 2018 it is worth $365m. Imagine how much more an employee could have made working for 4 years at a public BigCo with RSUs you can sell every year. This is just another startup lottery failure. Employees got screwed.

[1] [https://blogs.wsj.com/digits/2014/04/22/weebly-valued- at-455...](https://blogs.wsj.com/digits/2014/04/22/weebly-valued- at-455-million-amid-website-building-boom/)

<comment><USER31> Saying employees got screwed without knowing deal details is a bit preposterous. Weebly pays engineers pretty well compared with bigco salary, has a cash yearly bonus, sabbatical program, etc. The only difference is stock comp.

What bigco are you going to work for in SF that gives those rsu grants? Salesforce, LinkedIn, and...? I wouldn't be willing to waste my life riding up and down the peninsula for that rsu grant.

<comment><USER30> and Dropbox, and Google (they have an SF office), and FB (opening SF office). Yes that's why you would just move to SF then. If you are in the Peninsula already then go work for FB, Google, LinkedIn, et al.*

*If maximizing for total comp

<comment><USER31> My question was for people already living in SF who don't want to ride down the peninsula. The choices are limited for bigco rsu grants.

Google doesn't have engineers working full time in the SF office. They highly discourage it. The SF based engineers have a stigma that they're lesser than the MTV counterparts.

FB doesn't have an SF office. Dropbox wasn't liquid until this year. To say people wasted time or got screwed 4 years ago by not going to work for bigco isn't fair.

</comment></comment></comment></comment></comment><comment><USER32> Not long ago Weebly was neck and neck competing with Wix & Squarespace and had a superior product in some areas (ex. eCommerce). Unfortunately, the product became stale and lacked vision over the last 3 years. As a result deserting many of their users.

This was a "take what you can get" deal for the founders. Hope Square can recharge the product with an innovative vision.

</comment><comment><USER33> Congrats drusenko and team!

</comment><comment><USER34> I checked out their site and their example sites look really nice. Seems like Weebly.com is running on their platform too (good sign).

</comment><comment><USER35> Ah, well... Consider this a winning lottery ticket that I didn't pull the trigger on. Could have joined pretty early.

</comment><comment><USER36> It's really annoying when a page ignores my language settings and displays the language they want based on location. It's double annoying when there's no way to give feedback without registering.

</comment><comment><USER37> I thought it was interesting that the article mentioned Weebly competes with Medium. Wouldn't they be competing more so with someone like Squarespace than a blogging platform? Or am I missing something?

</comment><comment><USER38> How many square employees freaked out when they went public at $12/share and sold off.

Wonder what most people do in that situation...

</comment><comment><USER39> Square looking to take on SquareSpace.

<comment><USER40> More likely Square is taking on Shopify.

</comment></comment><comment><USER41> I adore Weebly. This seems like a bargain!

</comment><comment><USER42> How will this affect Shopify stocks?

</comment><comment><USER43> For a moment there I had vision of a sweet Figaro Castle themed website template.

</comment><comment><USER44> I'm not sure if anyone uses weebly these days. Back in my college, when I was running a solo business, weebly hosted my website and I proudly printed the site url on my business card. It was the same time when Wix had flash based design. And when Flash vanished one would expect similar fate for Wix. But instead Weebly vanished which is a shame. Squarespace is something that Weebly could have built. But it's ironic now to see Weebly joining Square which is another bunch of missed opportunities. The touted Jobs 2.0 Jack Dorsey never seemed to have turned around it.

<comment><USER2> I'm not sure you're talking about the same company as everyone else. Weebly, AFAIK, always had consistent growth; there was no time in the past where you could say they were doing better than today, I don't think.

<comment><USER30> I'm pretty sure valuation-wise they were doing better in 2014 than today... [https://blogs.wsj.com/digits/2014/04/22/weebly-valued- at-455...](https://blogs.wsj.com/digits/2014/04/22/weebly-valued- at-455-million-amid-website-building-boom/)

<comment><USER2> Is valuation what really matters? I mean, I understand from an investment perspective and from the perspective of people who were hired at that time that valuation matters. But, from a business health perspective, doesn't number of users and revenue matter (a lot) more? Aren't they up from 2014 on those metrics?

</comment></comment></comment></comment><comment><USER45> About 10x, as they raised $35M in 2014: [https://www.crunchbase.com/organization/weebly](https://www.crunchbase.com/organization/weebly)

<comment><USER46> I imagine the investors are after 10x the valuation, not the amount raised.

<comment><USER45> ...and apparently it was raised at a $455M valuation. Hmm.

[https://techcrunch.com/2014/04/22/weebly- series-c/](https://techcrunch.com/2014/04/22/weebly-series-c/)

<comment><USER47> Yeah I can't tell if the employees would be disappointed or thrilled? But I guess an exit is an exit.

<comment><USER48> Likely depends on when you joined. The Series C investors had to get ~10% of the company for $35MM to get their money back so I doubt they did so well, but I bet it's a win for early investors, employees, and of course, the founders.

<comment><USER49> I mean, any exit could be spun as a 'win' for the founders. Still surprising that a company that was by all reports highly profitable decided to sell for what is basically a down round.</comment></comment></comment></comment></comment></comment>


Running Hacks - <AUTHOR> http://jtoy.net/2010/12/16/running-hacks.html

<comment><USER2> I kinda like his hacks, but jeez why run if you hate it. Figure something else out. He should hack his goal instead. It seems like he thinks exercise is punishment. At the least, I would recommend he ease into it instead of taking the flagellating monk approach.

</comment><comment><USER3> I don't think this is a healthy way to run. Plus it may work while you're young, but past 30 there's no way that you go on like this. Buy a heart rate monitor, and run at a reasonable speed for longer times, run faster once a week only to improve your performance and endurance.

</comment><comment><USER4> Here I was hoping for a way to get small code projects online quickly in a pretty way.

</comment><comment><USER5> >Every time I go running , I track the distance I ran.

I don't run much but I do walk 5-8 km a day between home, work and errands. I've found that tracking my distance (I use RunKeeper on my phone) is extremely motivating.</comment>


San Francisco has highest salaries of any city in the world, new survey shows - <AUTHOR> https://www.theguardian.com/us-news/2019/may/21/san-francisco-has-highest-salaries-of-any-city-in-the-world-new-survey-shows <comment><USER2> A lot of cash burning startups flush with VC funding have propped up salaries for everyone in the market. They are very willing to dole out crazy amounts of RSUs to compete with the already high FAANG salaries for the same talent.</comment>


Ask HN: Has anyone had experience of getting a partner a visa for the UK - <AUTHOR> I am a U.K. Citizen but we have no been together for the requisite two years which would enable her entry via that route. Does anyone have any other advice? <comment><USER2> Www.reddit.com/r/ukvisa is an excellent resource and can likely help you better than anyone here.</comment>


Ask HN: What could a Quantum Physicist do? - <AUTHOR> A friend of mine is a Quantum physicist and is looking for a job (in Boston). Universities are missing funds and also doesn't often provide a sane environment.
His knowledge of IT is limited to using linux and scientific programs (little python+R)
In what industry or position could he work for? Maybe training in "Machine learning" ? <comment><USER2> Linux, Python and R are great assets for BI and or data viz. He should be learning Javascript for D3 or similar as well as play with a demo of Tableau. Startups love advanced degrees of any sort even Quantum Physics. Helps them make the leap;-)</comment>


Announcing Drone Cloud, a Free Continuous Integration Service for X86 and Arm - <AUTHOR> https://blog.drone.io/drone-cloud/ <comment><USER2> Finally an automated ARM-target testing cloud service!

</comment><comment><USER3> I really love this move! I'm glad that I'm part of the community and free contributors 8)</comment>


Redis Masterclass: Part One - Configuration - <AUTHOR> http://snmaynard.com/2013/01/14/redis-masterclass-part-one-configuring-redis/

<comment><USER2> The "Overcommit Memory" issue has bitten me in the past on production, we were running close to the wire on redis memory usage, and Redis' fork that occurs to perisist your data to disk meant that the kernel killed our main redis process.</comment>


Improve as a Programmer After Your First Online Course - <AUTHOR> http://blog.udacity.com/2013/10/improve-as-programmer-after-your-first.html

<comment><USER2> I think this really applies to all online courses. It's great to take a marketing course, but to really _become_ a marketer you're going to have to learn how to learn on your own. Would be great for courses like Udacity to explicitly build material into their curriculum that teaches you how to learn on your own after the course is over.

<comment><USER3> Very true. It takes projects to separate what's needed versus what's purely academic. Projects also force you to learn what isn't taught, and to open the hidden doors in the technologies that you're using.

Similar with your analogy - For a marketing position, I would rather hire an English major with 2 years brand management experience at P&G than an MBA who has never worked in Marketing.

<comment><USER2> I had read a lot of marketing books and watched videos. Then I tried making my first Google Ad. I lost hundreds of dollars. Actually doing stuff is very humbling because you realize how little you know.

<comment><USER3> I highly value education, but nothing beats jumping into the mix.</comment></comment></comment></comment>


Ask HN: What topics/subjects are worth learning for a new software engineer? - <AUTHOR> I'm trying to cultivate my ability to identify worthwhile topics to invest time in learning since I have only recently graduated from university, so for the most part have been sticking to the yellow brick road laid out for me thus far.
What would some of you guys think about learning if you were just starting out in the industry? Or even better, what does your process for orienting yourself and making these kind of decisions look like?
Any and all advice would be greatly appreciated. <comment><USER2> Too many software engineers get into a mindset of "just make it work." For me, making it work is only half the battle. You need to build something that will make it possible for you or someone else to come back to later and be able to reason about and modify or extend.

I interview a lot of job candidates and I give them a very simple problem. Pretty much everyone can solve it, but I'm not just looking for them to solve it. I'm looking for them to find the right abstraction—one that will make it easy to extend the problem and for junior devs to look at the solution function and understand exactly what it's doing. Almost no one passes.

My coworkers ask "just make it work" problems in interviews, and I believe that has contributed to our codebase being a nightmare to work with.

I think most software engineering is an organization problem, rather than a optimization problem. My advice: learn functional programming and object oriented design. You will learn how to write declarative code that is loosely coupled and not dependent on its context.

<comment><USER3> > I'm looking for them to find the right abstraction

Nothing worse than an interviewer asking a design/coding question and who already "knows" which answer he/she wants.

<comment><USER4> This 100%. There's a big difference between looking for maintainable and extendable code and the "right" solution. To me, that almost no one passes is a red flag - if you are screening resumes right and framing the question right, the pass rate should be at least 25% IMO.

Extensibility/maintainability also exist on a spectrum - a less than ideal answer can still be pretty close.

<comment><USER2> I'm fine with less than idea answers. The problem is that most people I see prematurely optimize and don't try to abstract the problem out at all. Or they only abstract one small part, or a part that makes no sense to abstract. They gravite to one big function that does everything. Our codebase has a lot of big functions that do everything. The only time people try to break things up is to make it DRY. Any time we need to change things, it breaks something else entirely unrelated.

<comment><USER5> > _The problem is that most people I see prematurely optimize and don't try to > abstract the problem out at all._

Have you ever heard of Premature Abstraction[0][0a]?

> _Our codebase has a lot of big functions that do everything. The only time > people try to break things up is to make it DRY._

That's the whole point of DRY, though[1]. If you abstract with less than three instances of it, you will end up with abstractions that typically misfit the solution, requiring refactoring or outright disposal of the abstraction in the future (Or worse). Also, you waste time developing (what in all likelyhood are bad or leaky) abstractions when you could be devoting time to something more important.

> _Any time we need to change things, it breaks something else entirely > unrelated._

That's unrelated to abstraction.

There, I said it.

Leaky or badly fitting interfaces are not solved by abstracting more, they're solved by compartmentalizing more (There's a subtle difference here). This _can_ be done with abstraction, but doesn't need to be. Typically refactoring the data structures, shuffling state around, or redesigning the interfaces to better fit the problem, is a better solution.

[0]: [http://wiki.c2.com/?PrematureAbstraction](http://wiki.c2.com/?PrematureAbstraction)

[0a]: [http://wiki.c2.com/?TooMuchAbstraction](http://wiki.c2.com/?TooMuchAbstraction)

[1]: [http://wiki.c2.com/?ThreeStrikesAndYouRefactor](http://wiki.c2.com/?ThreeStrikesAndYouRefactor)

</comment></comment></comment></comment></comment><comment><USER6> Take on challenging problems, ask lots of questions. Always try to understand both the technical decisions and business decisions/value in whatever project you're a part of.

Try to avoid anything resembling blog/resume driven development - the real things to worry about are writing code that solves the business problem in a simple, quick way, while being easy to modify in the future, low on bugs, easy to monitor, and ideally reasonably performant. Using hot new frameworks/tech is unimportant, but writing well tested, modular code with the right data models, simple architecture, and good logging/telemetry/alerts is very important.

Get comfortable with a set of tools that make sense for the work you're doing - an editor/IDE, a debugger, a shell (and common Unix programs, if you're in a Unix environment), a VCS, whatever build/deploy tooling your company uses, etc.

Avoid the common dev mindset that dev managers, product managers and/or designers are the enemy. It IS your role to focus on important technical needs, but realize that they must be balanced against delivery times and business value. Sometimes you need to leave hacks in place, if there's not too much cost to leaving them there. New features and bug fixes ARE often more important than cleaning up code/architecture, when you do take time for technical priorities, make sure you're choosing high impact ones.

<comment><USER7> I think you are needlessly dismissing resume driven development.

While I agree that it is no good from a technical perspective, it's really a fairly big part of what companies look at when they hire you (as I learned).

Make sure it contains at least the latest fancy technologies in a professional context, and it will really help with your desirability.

Then after you join the company, you can try improving their code to be up to standards.

<comment><USER6> We might have a different definition of resume driven development. Choosing a company that uses a tech stack you think will be good for your career is fine, though it wouldn't personally be one of my top criteria. But what I'm advising against is choosing frameworks, architectures, databases, etc. for a specific project, simply because they're the hot new thing, vs. actually being the best choice for the problem you're trying to solve, at the company where you're solving it.

Also, I personally don't think the specific stacks you've had experience with play much of a role in getting top dev jobs. Getting great referals from senior people is generally the best way to get top dev jobs IMO, and you get these referrals by shipping reliable, high quality software consistently, and being pragmatic/mature.

<comment><USER7> Explain to me how I'm going to get referrals from the people I'm working for? If I ship reliable, high quality software, they have every incentive to keep me.

I mean, old coworkers could potentially be a source of referrals, but not really.

<comment><USER6> I've found most high end hires work this way:

\- Person A and person B work together, both are fairly senior

\- Person B moves on to a new company. New company is hiring for a senior/lead/staff/director/whatever role. Person B says "we should recruit person A, I've worked with them before and they're great"

\- Person A gets recruited for a great position, gets it as long as they do well in the interview

On the flip side, I haven't seen "experience with specific hot new tech" play much of a role in hiring for senior positions. I've conducted around 150 dev interviews, plenty of them for senior+ positions, and we've always taken the opinion "let's just hire a smart, experienced, mature person, who knows what it takes to ship software, and knows how to balance technical priorities with business priorities. Ideally with a glowing referral from someone we trust." We always assume that someone like this can learn our tech stack fairly quickly. Like at my current workplace we use a lot of Scala, MySQL, Redis, Kafka, K8s and gRPC, but would happily hire someone senior who's used none of those technologies, but who has used similar enough ones, say Java, any relational db, any key value store, any queue/pub-sub system, VMs and REST.

</comment></comment></comment></comment></comment><comment><USER8> I was recently given this list of books by some very skilled engineers who I trust

1\. [The Pragmatic Programmer]([https://pragprog.com](https://pragprog.com)) 2\. Martin Fowler's [Refactoring Book]([https://martinfowler.com/books/refactoring.html](https://martinfowler.com/books/refactoring.html)) 3\. Kent Beck's [Test Driven Development: By Example]([https://www.amazon.com/Test-Driven-Development-Kent- Beck/dp/...](https://www.amazon.com/Test-Driven-Development-Kent- Beck/dp/0321146530)) 4\. [Thinking in Systems: A Primer]([https://www.amazon.com/Thinking-Systems-Donella-H- Meadows/dp...](https://www.amazon.com/Thinking-Systems-Donella-H- Meadows/dp/1603580557)) 5\. [Zen Mind, Beginner's Mind: Informal Talks on Zen Meditation and Practice]([https://www.amazon.com/Zen-Mind-Beginners-Informal- Meditatio...](https://www.amazon.com/Zen-Mind-Beginners-Informal- Meditation/dp/1590308492)) 6\. [Pragmatic Thinking and Learning: Refactor Your Wetware]([https://www.amazon.com/Pragmatic-Thinking-Learning- Refactor....](https://www.amazon.com/Pragmatic-Thinking-Learning- Refactor.../dp/1934356050))

</comment><comment><USER9> My personal opinion but this is purely because I enjoy it the most is functional programming. So much of the positive changes I've seen of late come through functional programming.

For example:

* ReasonML - this is what the founder of React is working on now. The ReasonML claims itself to be JavaScript 2030 (I see it as JavaScript + TypeScript + Immutable.JS + Redux). This contains a lot of the concepts from JavaScript so is a reasonable step to make

* If ReasonML isn't too scary it leads you down a path to OCaml, F# and Elm

* Rust (not strictly a functional programming language, but is ridiculously fast and contains well implemented Linear Types that makes Haskell's Simon Peyton-Jones jealous [0]) - this is one of the most loved programming languages according to the Stack Overflow survey

[0]: [https://www.youtube.com/watch?v=t0mhvd3-60Y](https://www.youtube.com/watch?v=t0mhvd3-60Y)

</comment><comment><USER10> Don't get too busy. This is easier said than done.

I've noticed that when we hire newly graduated engineers, we saturate them with CAD (or its equivalent in programming), bureaucracy, and troubleshooting. They forget the cool stuff that they learned in college, such as math and theory, and burn out.

If you want to keep up with that stuff, you have to figure out how to weave it into your regular work, so you have an excuse to continue learning more about it, or give yourself some free time to learn cool things that you might use later, or might not.

A lot of people tend to measure _themselves_ by how busy they are. I believe that's a death trap.

</comment><comment><USER11> I've been at this for a long time. I've had to learn many new languages, toolchains, and stacks over the years. I try to read at least one technical book a month. So will you. That's a fact.

Understanding systems (no, not operating systems, not file systems, not that stuff) will give you the ability to create really good stuff. By "systems" I mean, basically, human systems. For example, understanding why the New York City subways are working poorly these days involves knowing something about politics, economics, electronics (the signaling systems) and demographics.

Knowing why software companies sometimes have a hard time "putting themselves out of business" involves technical debt, new technology, resistance from people who know how to succed and want to keep doing it.

Why doesn't the Roman Catholic Church let their clergy marry? That's the mother of all systems questions.

How to bust into this way of thinking? Read "The Fifth Discipline" by Peter Senge. Be an anthropologist. To practice, read worseThanFailure.com as am amateur anthropologist. Don't just laugh, try to figure out WHY people do silly-seeming things.

<comment><USER12> When you mention technical books, do you have in mind books on programming languages/frameworks or more focused on general concepts/skills useful for the daily work?

<comment><USER11> Both kinds of books. I subscribe to O'Reilly's Safari Books Online, and read whatever looks interesting.

</comment></comment></comment><comment><USER13> Ask old engineers about their problems and they'll tell you it isn't tech. It's all people. Getting people to understand, get motivated, relax, get over themselves. These are the issues that hold back progress in practice.

But, if you want tech, machine learning really is horribly interesting and useful right now. Ocaml and Erlang are good systems to learn from and carry over to other systems. CUDA is a rare and powerful skill. And, if you want to get serious, learn TLA+ or Coq.

</comment><comment><USER14> On a related note (sorry for hijacking)

Should you invest time in learning for interviews or your own personal growth once you are 2-3 years in the industry ?

I understand that both sets are not mutually exclusive, but where should you put your time on ?

Investing time specifically to give interviews: Leetcode, Cracking the Coding Interview, TopCoder, etc., may increase the chances of getting a better job then your current one (and will make you a better programmer too).

On the other hand reading books like 'the pragmatic programmer' and other classics, won't necessarily put you in a better position to get a better job (in most companies), but will surely make you perform better in the current one.

So, is it ok to put it this way:

* If you are happy with your job and you can see that you can stay 5+ years at the company (basically FAANG ?): Invest time in learning for personal growth (Design Patterns, Refactoring, etc)

* If you plan to switch / want a better salary / company sucks / <every_other_reason> : Invest time towards preparing for interviews specifically ?

<comment><USER15> This is exactly my dilemma. I've been in the industry for 2 years but done very little personal development in my own time and my job has been quite limiting in pushing my skills in the direction that I desire.

I value my after work hours to pursue other things/exercise/have a life. This makes me put even more thinking into how should I be spending my already limited time.

Currently I'm sticking to doing some MOOCs related to my my development path (Android) and then I want to crack on a few personal projects. On the other hand, the clock is ticking and I really would love to prepare well for better career opportunities...

</comment></comment><comment><USER16> Learn to ship.

Make something useful, even if just for you and maybe three friends. Ship that. Sooner. Ship it when it hardly works. Then iterate.

This will teach you all the good bits of "agile", some requirements thinking, pragmatic programming, and (if it's a web thing) some basic "how to maintain an app on a server" skills, all in 1 go. It's also all stuff that is super hard to learn from books or from too-experienced coworkers.

<comment><USER17> I found that blogging the steps as I do side projects made progress really helped with this - it makes it feel like I'm always completing something. It also allowed me to break a problem down into small steps (what be done in 30 minutes-1 hour before work).

</comment></comment><comment><USER18> Understand that questions that anyone reading HN can answer are largely filled with answers and votes that are what the average HN commenter thinks. The average HN commenter makes an average wage.

Find people that sold businesses or make high six digit incomes and ask them.

That said, my two cents[0] is that you should run towards the hard stuff, not away from it. Seems hard? Seems ill-defined? Top dollar.

AI, Rust over C, Ember over JQuery, complex ETL jobs, OS programming, ASICs, FPGAs, space circuits, military gear, OS simulators, codebase analysis tools for red team, nano second computing for wall st, etc.

My only proviso is that you should probably stay away from learning about cryptographic algorithms unless you're also interested in learning about quantum computing. Crypto right now is pretty easy and cheap for the 99.999% of entities that need it; and unless you're _really_ good you're probably not going to break modern algos without quantum and even if you do there are a very small number of actors that will pay for your genius. MITM attacks that involve breaking crytpo algos are mostly state actors and huge criminal gangs.

[0] I guess I've sold a company, but some people working at Google have made more than I did so I don't really feel like I fit the category of people you should be asking.

<comment><USER19> > military gear

Maybe. I think there are lucrative opportunities in serving the military industrial complex but they are best exploited by insiders with experience and connections in that space. You need to know the lingo and need to know the right people. You also, probably, need clearance, which you can usually only get by being former military or formerly in the defense industry.

<comment><USER18> I'm open to hearing perspectives if you have personal experience or friends with experience here, but that has not been what I've found to be true.

My int / mil friends got in quite easily once they possessed the skills. They were all white, non-muslim, non-Russian and born in Canada or the US, but other than that even people with dual citizenships got S or TS clearance and worked on some crazy ass shit.

<comment><USER19> Did they get their TS clearance without being sponsored by a company who was already doing business with the government? It's my understanding that you need to get your start working for an existing government contractor and then you can branch out on your own. I don't know of anyone who went straight from, say, college into getting TS and starting a military contracting company. Also there are a ton of rules when dealing with the military that often require experience with those sorts of arrangements. Even my company, with extensive experience in that area, received a substantial fine because we bid on work which we no longer qualified for.

<comment><USER18> Oh, this is where we have different experience. I went to Waterloo, which is generally where a ton of our top CS and Engineering grads come from. Many (both Canadian and American citizens) went straight into spookware or military gear with no prior connections.

</comment></comment></comment></comment></comment><comment><USER20> Learn SQL and you will be able to work with any data-related app. Learn HTML and you will be able to make an UI out of nowhere. Learn GIT and you will be able to share your work with others. Learn unix shell so you can deploy all that shit and conquer the world.

<comment><USER21> Yes it feels like SQL, HTML, and shell are ubiquitous and powerful technologies that most people think they know, but probably don't. Certainly I could have learned more about them in the first decade of my career. 15 years into it, this knowledge continue to pay dividends.

I like this contrarian advice: rather than chasing the latest new thing, learn SQL, HTML, and shell. They continue to exist because they do things well that Java, Python, and Go don't. I suspect that will still be true in 10 years, so it's a good thing for new engineers to invest in.

(Learning the foundations of git is good too, although the outer layers are arbitrary and nonsensical.)

</comment></comment><comment><USER22> In most other professions from doctors to electricians, years of experience equates to years of expertise. In software development, the technologies change so rapidly that a large amount of time is spent learning the technologies and tools. You may be a veteran Java or C++ developer with intricate knowledge of the underlying frameworks and implementations. At some point those technologies are replaced and that knowledge is worthless. All those years of experience are gone. Sure some general experience was gained, but anything related to specific implementation details is gone.

The only thing that stays are the fundamentals. Focus on the core science and math aspects of software development, and your skills will only grow over the years, instead of constantly being deprecated as the landscape changes. Learn all of the design patterns and O notations and forget about the latest javascript framework flavor of the week.

<comment><USER23> What a valuable comment!

I am 37 and I am not a programmer but I do read a lot about programming and related areas. Practically speaking, I don't see myself becoming a professional programmer but I still want to pursue programming just to whet my learning appetite.

But what puts me off is this 'framework' dependent programming. It is just frustrating. Your knowledge of framework just doesn't stay with me. And I really don't learn anything fundamental.

</comment></comment><comment><USER24> I invest in my tools and learn a bit more than what I need to make them functional. This isn't always a tech deep dive- sometimes it's just being a "power user" and knowing the shortcuts.

I haven't met a recent grad in the workforce that uses git to its potential. They cargo cult workflows which is a good start but get in to trouble by not understanding just a bit more about how you can make temp branches / rags to keep from destroying commits in a rebase or how to prune duplicate commits from a sloppy rebase.

For terminals - using tmux or screen and understanding how they work enough to pair up on a remote box.

For any language knowing how to debug and how to profile. Understanding that print/println/log debugging is great and just keeping moving when figuring out why something isn't quite right.

This isn't a hard answer to what you asked but it's what popped up in my mind.

<comment><USER25> > I invest in my tools and learn a bit more than what I need to make them > functional. This isn't always a tech deep dive- sometimes it's just being a > "power user" and knowing the shortcuts.

If you (the asker) are using a Unix environment, I would recommend that you set up a weekly appointment, maybe every Friday, where you sit down and read a random manpage. Not for the sake of memorizing everything, but to learn what your tools can already do if you just remember to look up the right invocation when you need it.

<comment><USER26> I like the idea, but I don't think a random man page is the best approach. The signal to noise ratio is quite low. Maybe look at something like Julia Evans' bite sized linux.

<comment><USER27> Why does it have to be random at all? Why not start at the beginning of a Linux book and something like [http://wiki.bash-hackers.org](http://wiki.bash- hackers.org)?

Even acting systematically leaves room for astonishing synchronicities.

</comment></comment></comment></comment><comment><USER28> Learn about data, data science, statistics with a guise towards Machine Learning. Learning about data and statistics will give you a skill in numeracy that will be very distinguishing compared to the majority of developers (as evidenced by the other comments). This will help you quantify your accomplishments, ask thoughtful questions about the numbers others (including product managers) use to make decisions and give a fresh perspective to arguments that often lack credible facts.

Taking this further, with more math, can lead to proficiency in Machine Learning, which I think is the most important change in computer science in the last ten years, and likely very important to all developers in the next ten.

Background: started three companies (IPO, sale to a big tech company, crash'n'burn), CS degree from an Ivy, now working at Google.

</comment><comment><USER29> 1\. Learn to Ship

2\. Read everything on this list: [https://blog.codinghorror.com/recommended- reading-for-develo...](https://blog.codinghorror.com/recommended-reading-for- developers/)

3\. Learn to go down the stack. The best engineers I've worked with know their stack deep.

I wrote a blog post on this once (targeted at recent graduates, should be helpful): [https://captnemo.in/blog/2015/10/12/get-better-at- software-d...](https://captnemo.in/blog/2015/10/12/get-better-at-software- development/). The list on the blog post is:

1\. Join a community.

2\. Contribute to Open Source projects

3\. Write all code publicly

4\. Do tech talks

5\. Stay Updated

6\. Learn more languages

7\. Concepts Matter

8\. Ship Products

9\. Have side projects

10\. Read technical books

<comment><USER12> Knowing a stack deep is rather difficult when one attempts to also learn and keep up-to-date with the newest technologies. Or were you referring more to system/protocol stacks instead of programming languages/frameworks?

<comment><USER29> system/protocol stacks. Your ability to debug things faster and more accurately improves drastically if you can guess/know what is happen on the abstraction layers below you.

</comment></comment></comment><comment><USER30> If you are working at a new job, ask questions, ask lots of questions. The more you put your ego aside, and focus on absorbing everything like a sponge, you will leap ahead of your peers and your early career will set you up for long term success.

Often times, imposter syndrome will keep people from asking questions out of fear of being judged as incompetent. Let me tell you, the people who immediately ask about what they don't know are the ones you want around, the ones who pretend to know, or struggle through issues, or end up with odd solutions that need to be reworked take up more time and cost teams more money. The more you seek to understand form other more seasoned engineers, your peers, etc will only benefit you and will also have the added effect of building relationships and respect from others that will also set you up for a better long term career.

</comment><comment><USER31> Learn to pay attention to that feeling that tells you an abstraction is missing. When you try to bring something to life using the tools you know & it starts to feel much harder than it should be, that's a good sign there might be another tool out there you can use to get the job done. If you can't find anything, that's a good time to start asking if it makes sense to try a different approach or build your own.

</comment><comment><USER32> Like many questions, it would be easier to answer if we knew what your goals were. Do you want to grow into being the lead software person in a small company? Found your own place? Be a contributor in a large space? Work in academia? Teach? Be a digital nomad? Do design-driven web work? There are hundreds of choices of where you can end up. And they all result in different answers. So if you'll pardon a cliched question -- where do you want to be in 5 years? What would that person know? The answer to that question is what you should be studying.

<comment><AUTHOR> Interesting - you've pretty much hit the crux of my issue. I'm pretty aimless right now, which is a big part of why I struggle to make choices on things like this. Setting definite goals is something I've always kinda danced around, it would be good to build up a habit of doing so going forward.

Thanks for the words of advice, definitely has me thinking.

<comment><USER33> Your journey will evolve over time, too.

But to get started, just get stuck in building some web app that helps you or is funny to you, and throw it on heroku as a project. Put everything on github and begin growing your coding resume that way.

A software engineer friend was telling me last night why it's so hard and exhausting to learn. It's because you use so much thinking power learning something new, but the more you do it, the more it's muscle memory, like driving a car. Maybe 80% of the time you spend learning will actually be tiring and boring and hard. So, it's probably going to be painful at first, but having the drive to complete projects and get stuck in will get you where you want to be (even if you can't decide where that is, yet :) )

One warning would be to stay away from just learning languages. Logic and syntax are important for sure but knowing all the tools needed to build one piece of software is where you gain useful skills.

</comment></comment></comment><comment><USER34> The basics, the stuff that is one or two levels of abstraction below the 'normal' stuff. Write a compiler, write a query optimizer for an open source SQL database, write a new IO subsystem or memory allocation subsystem for MINIX, write a kernel for a Vector PU in, say, CUDA. Write a 4k demo in assembly. Grab a soldering iron and built your own mouse then write a driver for it. Write your own TCP/IP stack.

When I was a student, way too many years ago, the Uni I attended was very heavy on theory, lots of discrete math, physics, calculus, Big O analysis, electronics and computers architecture, Lisp, Prolog, CLISP, data structures and algorithms, wide search vs deep search, rebalancing red black trees on paper, etc. At the time I was very unhappy about it, I thought "why are they not teaching us C++, Visual Basic and this new language called Java that it's clearly the future?" But now, twenty years later I am very happy with the formal education I got. Having an understanding and an intuition of how things work all the way up and down the stack from transistors all the way up has proven invaluable during my professional career.

</comment><comment><USER35> The most important thing to remember is that technology of all kinds, software frameworks and even programming languages themselves come and go, mostly affected by the whims and fancies of the megacorps that own them, or the communities that eventually implode into a thousand forks, whereas abstract design and techniques, aka algorithms and analysis, are forever (well, as long as we stick to the Turing machine model). It might seem boring and disenchanting for a recent graduate to know that the "dry and boring" stuff he just got done with will be recurring forever, but that's the way it is (if you are creative then nothing is dry and boring anyway). Even things like design patterns and best practices are basically product of the technologies and the general state of affairs that people had to wrestle with at different times, so they have a shelf life and must be reevaluated before application, without succumbing to cargo cult or taunts and ridicule. These things are after all opinions of few influential people propagated by their minions (jk), and not laws of nature as observed and analyzed for centuries by great minds. Its alright to have counter opinion as long as its not contrarian just for the sake of it.

The second thing to keep in mind is that computer science/software engineering is basically like metallurgy - its purpose is to produce tools to make lives better, mostly for STEM people but also for laymen. So, while its perfectly alright to have some fun building sand castles in the foundry, it must be remembered that there is a greater purpose. An offshoot of this point is to pursue your interests in non "tech" field of your choice by getting away from computers every now and then; you never know from where you would get your ideas and where your ideas might have an application. As software guys we have an inherent freedom, much like artists, to explore other fields of knowledge, for it has benefits of many kinds. So avail it.

</comment><comment><USER36> I'm going to take a very different stance here from others.

First, you should ask yourself - what kind of engineer do you want to be. Why are you building?

Then, read about the people who became the best and their early days. What did they do when they were in your position? Did they study a set of topics or did they pursue their passions? Taking and highly-weighing advice from people not at the top of the field could be very detrimental to your development as an engineer.

From reading books like: Coders at work, Masters of Doom, Making of Karateka, you will realize that the best engineers were driven by their ideas and projects very early on. They ended up learning to make things happen. But don't take my word for it, find these people, study their stories and pick the path you would enjoy the most.

This approach will not just make you a strong career engineer, but could turn you into one of the greats - the people that get to push the field forward.

</comment><comment><USER37> Design. Tech can bloom and fade. Languages can be hyped and forgotten. But design stays. Learn to empathize with your users. Learn to design stuff that works well but also allows for fixing when it breaks. A good developer understands the interfaces and communication that is inherent within writing code.

</comment><comment><USER38> One non-tech answer is learning to listen and learning to ask intelligent questions. Assuming you are writing software for people to use, these skills can be very valuable talking to users, executives and pretty much anyone a software engineer deals with. Maybe this is not too useful if you are working on some non user facing stuff like hard algorithms or protocols, I don't know.

I've seen even experienced people end up asking _leading_ questions and get the answers that they want (or think are right), instead of just letting the other person tell them what their thoughts. The result is weeks or months of wasted effort, bugs and user unhappiness.

</comment><comment><USER39> There are lots of topics you could look into:

* testing

* logging

* writing code that is easy to operate

* deploying code

* build systems

* algorithms

* API design

* refactoring

* security practices

* development processes (scrum/kanban/whatever)

* learning about the vertical / business domain you're in

To be honest, I didn't plan too much ahead -- there were some topics that simply interested me (algorithms, security), and others I was thrown into because work made it necessary (build systems / deploying, logging).

If you don't actively try to get into a niche, you'll get exposed to many of these topics, and likely many more that I forget.

If you ever look back, and don't think you haven't learned anything new in the last 3 or 6 months or so, then you should actively look for opportunities to learn.

<comment><USER40> _logging_

And for the love of all that is holy don't just log to a text file. Use some type of structured logging framework (Serilog,StructLog,etc.) that gives you JSON structured logging that you can then query instead of depending on regular expressions.

<comment><USER25> Why though? Even if your own app logs JSON, everything around it (the DB, the log collector, the metrics collector, the kernel, the LDAP server) most likely logs plain text, so you need to know regexes anyway.

<comment><USER40> Oh that's the other part. With the structured logging framework that I'm most familiar with - Serilog - if you send it to an output source like Mongo or ElasticSearch it logs documents. So you can query your logs. With Serilog you can tell it to always add certain attributes and you can tell it to add attributes with a certain context - like everything in a "using" block.

As far as the logs that you don't control, if they are in some sort of standardized format even if it is just a line of text, you can use logstash to create a structure around it.

Of course with ElasticSearch, you have a powerful reporting app in Kibana. If you are on AWS you can send logs to CloudWatch and use the alerting, metric framework that's built in.

</comment></comment></comment></comment><comment><USER41> The important skills in real life programming are about code maintenance.

\- Finding and fixing other people's bugs. Many people hate this, but you can learn _huge_ amounts from this! After you've found the bug, understand _why_ it happened, and learn from it.

\- Writing code that not only works - that's the minimal, given level - but is also maintainable and easy to change. By _other_ people, even. Who you've never met, ideally.

\- Refactoring and testing are _essential_. If you're not spending at least 30% of you're time doing this, you're building trash.

</comment><comment><USER42> For the love of god, learn how database indices work -- basically everything at [https://use-the-index-luke.com/](https://use-the-index-luke.com/)

</comment><comment><USER43> A few things that come to mind:

1) version control (git at least)

2) soft skills (how to deal with people)

3) learn some new languages outside of your comfort zone. Learning new languages is always useful and you can get a feel of different domains

4) The tools you use to make your magic happen. Learn your IDE shortcuts, optimize your toolchain.

5) And, kind of related, think about your ergonomics. Working at a computer for 8 hours a day can be quite bad for your health. Make sure your environment is good for you, desk at the right height, good mouse / keyboard, and maybe do some sports on the side.

<comment><USER44> I would add learn how to do Test-driven Development

</comment></comment><comment><USER45> Remember that software engineers have two skill sets: programming/development skills and domain knowledge. Many of the comments here are focusing on the former, but consider the latter as well. What kinds of problems do you like solving? What (business) domain(s) do you find interesting? Start thinking about that over the next few years and acquire knowledge of the business domain(s) as well as leveling up your technical chops.

</comment><comment><USER46> Completing projects does a lot to help you learn, and you can complete more small projects per amount of time than larger ones. So give your learning projects small, defined scopes.

Actually properly learn the tools you find yourself using a lot. Like if you use javascript, don't be the guy who doesn't understand how "var" and "this" behave. And don't feel pressured to know everything - if you only use Python to edit scripts twice a year then it's fine to be looking stuff up every line.

Try to ignore programming fads, though of course as a person embedded in society it's hard to know what's just hype. On average these things last as long as they've already existed, so learning things that have been around continuously for a long time is pretty safe. Since you're just starting, it's particularly important for you to learn things that'll last a long time, since you have longer to use them.

Learn something that lets you make a website backed by an SQL database. It's a pretty safe bet you'll want to do things that fit this description a whole bunch of times. This is also a place where a bizarrely small amount of expertise can change "start asking for VC money" projects into weekend projects.

You can go your whole career without ever needing to write a parser, unless you know how to write parsers, then you'll see cases where they're the best solution all the time. I don't actually know how much this is "if all you have a hammer everything looks like a nail" and how much is "boy I'm glad I know hammers exist."

It's more niche, but I've never regretted learning more vector math.

</comment><comment><USER47> I'd recommend to learn several languages that are pretty different from each other. E.g. java, golang and javascript. Learn enough to be proficient in each - enough so you are fully comfortable in the ecosystem and could happily start a new project from scratch and do it all in that language + ecosystem without much help or stumbling blocks.

Benefits: learning multiple languages makes you better in each by opening your mind to new approaches or reinforcing higer-level understanding... Plus you won't become wedded to a specific language or "scared" of touching something new you've not done before. You'll see more similarities than differences, and although you may never actually get to code in java/golang/javascript professionally the experience of learning and coding in the different languages is really powerful in my experience.

Other than that, I am personally a fan of "full stack" development. Learn a little bit about everything so you can hit the ground running on whatever project you land on - web development, databases, mobile device, backend developer, continuous integration, containers, serverles etc etc. Play around with all of these and you'll learn _a lot_ about designing systems and what really matters. Again - you'll see many similarities across all of these apparently different areas of expertise, all of which will be to your benefit.

With respect, ignore comments about learning the tools - tools change rapidly and you might not get to use your particular favourite tool/ide/editor/source control system/operating system/hardware on your next proejct, so just make sure you stay flexible.

Good luck - you're in for a really fun ride.

</comment><comment><USER48> Learn about the concepts of Continuous Integration and Continuous Deployment.

Learn about implementing code coverage into your projects so you can track the percentage of code paths which are actually being covered by the tests.

Once you have the mindset of actually testing your software and tracking the code coverage your entire approach to development will change and improve.

</comment><comment><USER49> My advice to aspiring developers can be found here:

[https://www.level12.io/blog/advice-to-aspiring- developers/](https://www.level12.io/blog/advice-to-aspiring-developers/)

I believe it will probably give you some of what you are looking for as well as links out to other helpful resources.

</comment><comment><USER50> "Only a fool thinks himself to be wise."

Learn time management. People management. Fitness. Productivity science. Read how the other people succeed.

A lot of very smart people take time to write excellent books on all of these topics. Why make the same mistakes they did? Learn to read books, and learn from the best. Adapt their lifestyles into your own.

</comment><comment><USER51> You've got a lot of answers here, and quite a few of them overlap what I'd suggest. You're not going to be able to pursue them all.

Personally, I tend to learn things that are relevant to my job as I'm doing it.

Aside from technical things, that also means learning the domain you are working in if it's sufficiently interesting. For example, I worked in healthcare for a while, so I learned to read the HL7 protocol and the most important parts of the NHS data dictionary. Then I worked for an environmental charity, so I learned about thermodynamics and government policy making.

If you learn the domain, then you will make more good decisions when you design your program. You will also be in a better position to be trusted to make those decisions yourself.

For technical stuff, I like to spend more time and go deeper on things that I think are fundamental, things that I think will be useful in the future, and things that I have fun with.

I don't like to spend time on things that I find yucky, that I intend to avoid using again, or that I think are based on unsound fundamentals.

Sometimes I make wrong decisions in either direction. Either spending too much time learning something esoteric irrelevant in the long term, or spinning my wheels because I've skimmed over something without understanding it properly. I don't know a way to avoid this.

A few specific things I think are good quick wins for a starting software engineer:

      * Version control.
      * Known what a dictionary/hashmap is for and how to use it.
      * Set logic (intersection, union, difference, xor), and how to do it in your favourite programming language.
      * Automation (bash or Powershell + make + SSH).
      * SQL + indexes (common in lots of computer programs, and SQLite fits nicely into the automation chain above).
      * Regex, how to use it in your text editor / IDE of choice, and how to use it on the command line. https://www.regular-expressions.info/

<comment><USER51> Oh, also, I forgot.

Learn Excel properly: [https://www.youtube.com/watch?v=0nbkaYsR94c](https://www.youtube.com/watch?v=0nbkaYsR94c)

When you're properly automating things you'll want to use programs and command line tools instead, but you should still know Excel for the one-off quick and dirty data inspection.

Also some of your colleagues will use it a lot, and won't have learned it properly. You can make yourself very useful.

</comment></comment><comment><USER40> I know this is going against the grain for HN, but I'm going to suggest not learning the latest leetcode, computer science algorithms. Most places in corporate America are doing cookie cutter problems that have been solved before in different domains. Unless your company is operating at FAANG or even Twitter scale, all of the cross cutting, infrastructure concerns have been solved and you can use an existing piece of software to solve it and it's usually open source.

What I do suggest you learn that most people don't know is going deeper down the stack, domain driven design, continuous integration/continuous deployment, at least one public cloud environment (Azure/AWS/GCP).

</comment><comment><USER52> Hammer the people who should be coming up with requirements, the BA or PO or whoever it is to take responsibility for proper requirements. From your end read things like the Clean Code book and Head first design patterns.

</comment><comment><USER53> Product Development/Management. Understanding the 'inputs' to your role will make you more effective. Learning the WHY you're building helps you prioritize and gives you credibility when arguing for/against decisions at a team level.

Learning about what a PM does has helped me make sense of how my work as a SEng relates to management, product and design. Specifically, the way I now spec, test and design systems in order to facilitate legibility, QA and coherence with the domain of the product has been greatly influenced by my amateur knowledge of product dev/mgmt.

</comment><comment><USER54> Learn a language exceptionally well.

One thing that makes younger engineers stand out is having mastery over a language. This will be evident to most interviewers and will be a big help in day-to-day tasks. It also opens the door to having a good mental model for becoming very proficient in other languages, which you will definitely need to be down the line.

Getting good at various patterns that are native to the language, understanding how to profile/use debuggers, understanding memory and CPU performance, the ecosystem, memorizing the standard library, etc are all part of this learning.

</comment><comment><USER55> You need to narrow it down a bit.

Know yourself. Find your passion. I know this sounds tacky, but there are sooo many variables in choosing a professional direction. You are the only constant. For example, it is very important to determine what kind of developer you are: quick n dirty, loads of languages, throw out some PoCs and go on or... keep building till it's perfect, 100% coverage, solid docs, etc. Than, what will you build? Embedded, games, web, medical, imaging, AI, infosec, etc? Answer both questions and your next step will be easier to define.

</comment><comment><USER56> I would focus on communication skills. Knowing what the end user wants is really important.

For technical skills, I recommend reading Clean Code, Test Driven Development, and The Philosophy of Software Design.

<comment><USER17> Two thing sthat really helped me with communication skills were technical blogging, and volunteering with Big Brothers, Big Sisters - trying to see the world through the eyes of a teenager is really illuminating.

</comment></comment><comment><USER57> Learning to understand the domain you're modelling thoroughly. To ask enough questions so you don't build the wrong thing for the person who's requesting the work.

</comment><comment><USER58> Operating system packaging: RPM, pkgsrc, ... You'll always come back to it as being your primary building and delivery block and it will provide huge benefits in terms of simplicity. You'll be running circles around everyone else in terms of delivery, simplicity and robustness. The learning curve is steep but well worth it, and it never stops paying dividends.

</comment><comment><USER59> As long as you're working on projects you will gain knowledge in process and skill. Examples of these are Agile, Cloud, Dev Ops, Programming, Collaboration, etc.

You also may want to specialize both in your skillset (Front End Back End) and Industry. Try to optimize by focusing on something you enjoy and are also good at.

</comment><comment><USER60> When all you need to do breach someone's privacy and often the law is publish:

      Facebook

then you need to learn about security and privacy and how to defend your users against the failings endemic in the web.

</comment><comment><USER61> Very nice, but I still have to see a guide that doesn't just refurbish the ideas from the late Jerry Weinberg great book: [https://leanpub.com/becomingatechnicalleader](https://leanpub.com/becomingatechnicalleader)

</comment><comment><USER62> My favourite is Go-Jek reading list [https://blog.gojekengineering.com/the-go- jek-reading-list-10...](https://blog.gojekengineering.com/the-go-jek-reading- list-1088712ccc14)

</comment><comment><USER63> Which industry? There's a lot of differences between, for example, embedded systems and database administration. Or HPC and mobile app development. Or even .NET and open source.

</comment><comment><USER33> In short, choose a problem you have, then fix it the easiest way possible by building software/website/webapp/whatever. Language doesn't even matter.

</comment><comment><USER64> Regular expressions: [https://www.xkcd.com/208/](https://www.xkcd.com/208/)

Also, study your debugger until you grok every feature and command, and then keep studying it until it's firmly embedded in your muscle memory.

</comment><comment><USER65> Learning how to deal with dependencies. Learning integration into a system. Learning basic DevOps. Learning versioning of your software.

</comment><comment><USER66> Things I look for when hiring: an understanding and appreciation for SOLID principles. Major bonus points for hexagonal architecture.

</comment><comment><USER67> System Thinking and look at what Human Factors and Cognitive Systems Engineering does.

It is always applicable and it will be useful in any role.

</comment><comment><USER68> Read hacker news once every day and you will after a few years of reading be above the average software engineer.

</comment><comment><USER69> Make sure you know about Orders of Complexity. Read the Mythical Man Month and other old books on theory.

</comment><comment><USER70> Office politics :)

</comment><comment><USER71> Stress management and communication skills.

</comment><comment><USER72> Learn Prolog.

</comment><comment> bra-ket business

</comment><comment><USER73> all of teh subjects</comment>


Scrapy Tips from the Pros: February 2016 Edition - <AUTHOR> https://blog.scrapinghub.com/2016/02/24/scrapy-tips-from-the-pros-february-2016-edition/ <comment><USER2> Hey, I'm the author of this post. Feel free to ask any questions or to suggest topics for the next month's post on the "Scrapy tips from the pros" series. :)

<comment><USER3> This might be slightly-OT but I have a paid Scrapinghub account and I'm very interested in Kumo, because there are certain websites that require me to connect a real browser using Selenium webdriver and pyvirtualdisplay. So I have a Docker image with those dependencies baked-in, but of course I can't run those spiders on Scrapinghub yet due to only being able to upload eggs as deployment targets. So I guess I'm wondering if there's any way to get in on the Kumo beta?

<comment><USER2> Hey, of course. We are glad that you are interested in testing Kumo.

Please email us (help at scrapinghub . com) your user id, organization ids and the project ids you want to migrate to Kumo. Then we'll get back to you, giving early access to Kumo beta and documentation.

Just keep in mind that it is still an experimental platform.</comment></comment></comment>


My Valuable, Cheap College Degree - <AUTHOR> http://www.nytimes.com/2013/02/01/opinion/my-valuable-cheap-college-degree.html <comment><USER3> I have a ~10K degree from UC Berkeley that I got in 2004.

Spent 2 years at Cabrillo College, in Aptos, CA - Tuition Cost: ~$1000

Spent 18 months at UC Berkeley, taking 16-21 credits per semester, including a summer quarter, after a small scholarship ($4000) - Tuition Cost: $10,000

So $11,000

My strategy: Go to community college for 2 years, do well, get the Berkeley Alumni Scholarship ($4000/year), take lots of classes, finish early. I have $0.0 debt. Due to tuition increases not sure you could replicate this, but I bet you could get close.

For those who get snobbish re community college, it really depends where you go! At Cabrillo, a lot of my profs had Phd's from reputable schools and the students were pretty sharp. You get great access to profs in the small classes. Once I got to Berkeley I had no problem walking right up to the profs there, was not intimidated. Plus you get a better perspective of the world in Community College sitting next to the pregnant single mom, the retiree, the recent immigrant and the lawyer turned Plummer in your Philosophy of Mind class! Interesting discussion!

<comment><USER4> What did you study? My father did the same thing as you, in the 1960s, and still raves about how great the community college was - it was small enough that he could do whatever he wanted in the chem lab because the prof knew him. I've looked at the catalogues for community colleges though, and I don't see how I could have gone there without drastically changing the amount of material that was covered my degree. They just don't offer the math and engineering classes that I took in my first two years.

</comment></comment><comment><USER5> The moral of the article's story, and my experience interviewing lots of folks, is that the quality of the student's desire to learn supersedes the perceived quality of the institution.

Funny enough, I took "C Programming" at Thomas Edison (mentioned in the article) the summer between 7th and 8th grades. I learned at home and took proctored exams. 5 years later, Rutgers honored the 3 credits (though I also had AP credit) for an intro programming class.

</comment><comment><USER6> I thought this comment there summed up the entire article succinctly.

 _A contrarian comment based on the interestingly paradoxical fact that our sub-20K PhD found his path to happiness (if, indeed, that's what heading the American Enterprise Institute represents for him) by recognizing he might best pursue such a goal by becoming a tenured professor at a $45K per BA year institution. I remain unimpressed by today's tutorial_

<comment><USER7> So, we can sum up that comment as "It's not what you learn, it's how much it cost for your degree that matters in life"?

<comment><USER6> The way I took it is that his degree was valuable to him because he participated in the overpriced college market, the very thing he is criticizing.

</comment></comment></comment><comment><USER8> May I propose an alternate solution? Get your degree from India. Most of the good universities have special considerations/ admission procedures for foreign students.

There will be plenty of differences from a University in the West; but for those with a sense for adventure, it might still be worthwhile

<comment><USER9> Indian degrees get very little respect here in the U.S. even relative to random "directional state schools." There is a reason Indian students almost always do some sort of graduate education here in the U.S.

If you're an American and smart and capable, the way to go is to load up on community college credits in HS, do a year of CC, then transfer to a state school with reasonable tuition for the least year and change.

If you've got some programming skill, it should be even easier. I earned enough during my summers in college programming to pay most of my in-state tuition and cost of living at my state school, and it wasn't even a particularly cheap one.

<comment><USER10> It's not just Indian degrees, it's almost all foreign degrees from institutions that aren't well known. My wife's close-to-MBA-level BAC+5 degree from a reputable French university (ie, good but not Sorbonne) was pretty much not considered when she was searching for employment in the states. After she got an MBA here, she was much more employable.

<comment><USER11> I've never had a problem with my UK degree in the states, though this may be because I'm at the point where it's just a check mark next to "the candidate has a relevant degree".

</comment></comment></comment></comment><comment><USER12> Yes, there ma be an education bubble out there, but it's easy to critize education when you already have gotten it and the privileges it entails - <USER2> as understand how it potentially is a bubble!

But even with that knowledge of the high risks of a bubble, and even if one tries to forget the many studies proving education is a worthwhile investment (for the increased salary benefits one gets - cf signalling theory) how munch do you think the capacity to learn and create is worth? How valuable is it to you?

Some people do not need any formal education to get that. But many do. And even those who don't "need" a formal education can take great advantage of it - for ex finding some golden insights with a marketable value, formalizing their knowledge, or even better- learning how to create new knowledge (PhD)

There is a growing anti intellectual bias - even here on HN. Whatever, but least leave aside your opinion and consider the facts.

(conflict of interest warning - I made an "investment" in my education, and therefore I could have a biased opinion)

<comment><USER13> There absolutely is an education bubble. That doesn't mean that education is worthless, far from it. Houses are never worthless even when there are huge housing bubbles. The problem is the runaway, unsustainable cost.

I got my degree from a local state school in the mid 90s. And then I went back and pursued another degree in a dual-major for another 3 years before finally deciding I wanted to do something else and leaving school. That was a luxury I had because school was so cheap, my parents paid for most of school and I was able to graduate without any debt. Today that same educational experience at the same school would cost nearly twice as much per year adjusted for inflation. Which is just not supportable without taking on most of it as debt for most people. And if you go to out of state tuition plus rent the costs are enormous, and also unsustainable for even people from reasonably affluent families.

Meanwhile, it's become oh so much easier to take on massive amounts of student loan debt, which has no doubt helped fuel some of this bubble.

No matter how valuable an education is, and I consider mine plenty valuable, when the cost doubles or more the benefit to cost ratio goes down substantially. And that's the core problem of the education bubble today. It used to be that moderately valuable degrees were still good, because they could be gotten cheaply enough, but now every degree is hugely expensive so the less valuable degrees now have a much lower RoI and are much less worthwhile investments.

<comment><USER14> If there is "absolutely" a bubble, please explain the motivation for individuals to participate in the "bubble"?

I.e. with the housing bubble and the stock market bubble, the motivation was to buy those assets solely in anticipation of being able to sell them at higher prices later on, thus being able to profit (and handsomely so).

</comment></comment></comment><comment><USER15> My wife & I have five degrees between us (an Ivy League included), total cost under $100k. The amount of tuition money out there waiting for recipients is staggering, if you'll just look for it, study hard, and be flexible. And do realize there is a difference between education and certification.

If you're paying list price for an education, you're doing it wrong.

<comment><USER6> Be a minority or the top 1% in your class of people likely depending on the same thing?

<comment><USER14> If you are a student from a family with median income or below, Harvard and Stanford waive tuition (and Stanford will cover room and board too).

[http://www.reuters.com/article/2008/02/21/us-education- stanf...](http://www.reuters.com/article/2008/02/21/us-education-stanford- tuition-idUSN2041220220080221)

<comment><USER6> I think everyone is aware of that by now. Someone brings it up every time tuition comes up.

Given their acceptance rates, this is not an option for even a majority of HN readers.

</comment></comment></comment></comment><comment><USER16> To me it seems really silly to spend 100K to learn things that are only at a Bachelor's level. People who did their bachelor's in other countries like France or Sweden, for free, are learning the same things from scientific papers right now. Even if the Bachelor degree is harder or better, there is no difference in the end because it's only Bachelor level stuff.

Harvard or MIT cannot make you into a powerful machine. The most important thing to achieve a big scientific career is to be born with the genetics and the willpower to work. It seems that going to Harvard or Stanford takes care of the latter part since you are betting your life on a few years of your life and you are taking extraordinary debt to do so. If you're getting it all for free, you probably won't work as hard right? But after a few years, if you go to the master degree or the doctorate, what difference does it make? None.

<comment><USER17> The money isn't for the knowledge, its for the credentials. Having a degree from a perceived "top" school is being oversold as extremely valuable when job hunting. Actual skillset is irrelevant.

What ends up being really relevant is that a lot of the big gun companies target schools, and recruit right from the graduating crop in person, sometimes with barely an interview as long as the GPA is reasonable. _That_ has value bordering on that 100k price tag.

</comment></comment><comment><USER18> > Meanwhile, the average tuition for just one year at a four-year private > university in 2011 was almost $33,000,

Why the focus on private universities? From the same data source, the cost at a public institution is less than half that. (Public institution grad here)

Get a degree somewhere, and concurrently some relevant experience (paid or volunteer), and you will be better suited for the future than someone who has to invest 100% of their university career (or after) struggling to pay for it.

</comment><comment><USER19> Where can one get a 5K MA?

<comment><USER20> Apply as a phd so you can TA the whole time, then drop out with the masters. You'll get paid for your MA.

</comment></comment><comment><USER21> i did my undergrad at a commuter school (ended up with three bachelor degrees for a total cost of ~$24k) and am now at top 10 for my PhD in a STEM field. Even though i have no debt, i wouldn't recommend it. Comparing the school i was at, and the one i'm in now is like apples and oranges. Even the undergraduate classes i TA are much more difficult in terms of the amount of knowledge and work required to pass than the smaller local school. Before i figured that math is math, science is science, and the facts shouldn't really change from school to school, but now i can really see a difference of who is better prepared for cutting edge industry/graduate school.

</comment><comment><USER22> From an economics standpoint, I'm curious why education has been skyrocketing in price? Is it primarily due to demand, and universities are just jacking up tuition because they can? Or are there other factors at play?

<comment><AUTHOR> I think you'll enjoy this fascinating lecture and Q&A by Glenn Reynolds held at the Clemson Institute for the Study of Capitalism on your very question, entitled The Higher Education Bubble and What Comes Next: <http://vimeo.com/15821943> Check it out.

<comment><USER22> Sweet, will check it out, thanks!

</comment></comment></comment><comment><USER23> Hasn't the largest increase in tuition costs come from paying so many new administrators? Let's start there before we start cutting lectures and class time.

<comment><USER14> Would love to see any hard data on what the actual new administrators are, and how much the additional costs are. Raw numbers, not the % increase compared to some year in the past.

</comment></comment><comment><USER24> "I disagree. I possess a 10K-B.A., which I got way back in 1994. And it was the most important intellectual and career move I ever made."

And this is why your major accomplishments are being a professor at a third- tier school like Syracuse, and being a commissar and hack for a think tank funded by the Olins, ExxonMobil etc. What a surprise such a shlocky job is done by someone who could barely make it through college and got a crap degree.

<comment><USER25> Who are you to attack this man's accomplishments and demean his work?</comment></comment>


Ask HN: How will the web change human life 2011-2020? - <AUTHOR>

How will the web change human life 2011-2020? Mobile, home, work, school, art, science...Earth. <comment><USER2> I think it will be the other way around. Major changes are afoot in the world, and these will have profound effect on every part of our lives, not just the "web". Severe problems with the economy will cripple some large internet-based businesses while letting others thrive. Lighter-weight efforts on the web will do well and be better positioned to take advantage of these changes. Larger less agile efforts will fall on hard times. A major war is likely as a result of economic issues and resulting political instability. Efforts of major countries spent trying to prepare for "Cyberwarfare" are a bust, with organizations (not countries, per se) easily able to take out major parts of the web with ease. This is the impetus to create a new set of intranetworks, including one for business transactions, that will eventually be used by most future (net-enabled) appliances. Basically, this decade will be the beginning of the of end of the "wild west" internet, and the dawn of reliable and restricted set of privately-managed and government-managed intranetworks, evolving from the current cellular networks (currently incapable of handling such traffic, but that won't always be the case).

<comment><USER2> Some other thoughts... will be higher level adoption of dynamic languages and higher abstraction with continued increase in client-side code via javascript with continued development of JQuery/JQuery UI, HTML 5 gets more fully adopted but few care, semantic web never gets realized.

</comment></comment><comment><AUTHOR> All media, all devices, and all networks are converging into the web. I think the web will continue to become the platform of choice for our civilization. We are becoming more and more dependent upon it for survival and amusement.

</comment><comment><USER3> Depends on technological development, as well as how many "killer apps" are dreamed up.</comment>