skysight-inc/HackerNews huggingface dataset:
I think C is pretty good as a first language. It's not fraught with too many concepts and the few concepts it has are essential for many kinds of programming. If people use languages with mutable variables they have to know how pointers work. C makes that very explicit. You can't use it without understanding pointers and that's a good thing.

I'm not saying C is the best language to learn how to program, but it's definately better than Java, C++, Ruby or JavaScript. I can't tell how Lisp would work as a first language because I haven't seen anyone try to learn or teach it.
I don't blame the educational system and I don't blame the parents or kids. I blame human nature.

America is ending one the most successful runs of any nation in recorded history. Cheap raw materials, incredibly cheap energy, vastly expanded markets: it's a recipe for a cake walk -- and it was a cake walk. The problem is, when you give successive generations great wealth without having to work very hard for it, what happens? We don't have to look far for case studies. It's so common in wealthy families that the expression is: the first generation creates the wealth, the second builds upon it, and the third spends it.

Unfortunately, we've borrowed our way well into a fourth generation. If these kids were even slightly interested in learning, they could do so easily. Libraries and any internet-capable computer are tremendous resources. The teachers and books these kids are given are also quite good. But the culture they live in discourages learning. It values fiscal superiority over hard work. In fact, it glorifies those who get wealthy fast over those who work their lifetimes for it. It gives feel-good advice, such as, "Go your own way; break the rules; don't listen to others," which is only good advice once you already know all the rules. Getting to know those rules, however, takes a lot of hard work and time. In other words, we're a culture that values results, not effort.

It's the curse of success. It's the third/fourth generation effect. It will all correct itself naturally and there's not much we can do about it -- except put our fingers in our ears and wait.
I'm not sure if this was an add, but I got a virus hit from this site.
By "school" you mean College or University I presume? (which is what most of the english speaking world calls them). Otherwise highschools are far more advanced in the US then I am led to believe ;)
i once let a friend use my TI-89 for a couple of minutes. he wanted to program a game for it. when i checked to see what he had written so far, it said "there is a ball"

although hilarious, it's an ideal that shouldn't be laughed at
My relatively well-off public high school had an elective year long programming sequence that was half Pascal and the second half C++. Then, AP Computer Science was taught in C++.

Right after I graduated, AP Computer Science switched to Java and my school started teaching C++ as the first programming language, then Java, then Java again for AP CS.
Wow, that is impressive. Although, when I went to high school there was no Java (barely was C++, actually there was but no one really used it yet as it was a wacky pre processor for C). Pascal baby !

Interesting how pascal kind of quietly disappeared. It has the closest resemblence to the algol heritage that it came from.
Yeah... hopefully there will eventually be a pedagogical movement to switch to python as a first language, C++ is definitely a little rough.
I learned in Pascal too. It's not bad.
the problem is that the layers aren't very connected or related. in particular the higher-level languages essentially stand on their own by their altitude, and the lower-level languages likewise by their ties to machinery
Is it just me, or did none of the reasons for this decline have anything directly to do with being an American?

All over the world, people want to do exactly what the guy complains about: tune in, turn on, and drop out.

You can either view this as the beginning of the singularity or a sign that we're all going to turn into mostly immobile blobs of flesh wired into a continuously self-pleasuring electronic grid. Or perhaps both of those things are the same thing. As far as me, I'm optimistic that changes in society and technology will lead to great advances in human knowledge and science. I think as some generations plug into the grid other generations in other cultures will do all the heavy lifting. On the other hand, when it comes to difficult things, like space exploration or politics, I'm not so optimistic. It's hard to have a democracy when people don't know what "agriculture" is.
A linked list in which every node is a void pointer. But that would be kind of the same.

What I meant is that knowing how you would have to implement each of your high-level data structures in C helps you understand some of the problems you encounter when working with them. For example, now I know the difference between these two Python lists: l = [[1,2] for i in range(6)] and l = [1,2] * 6
The next generation can't even form a sentence? Why does that strike me as hyperbole?
What I Know About Entrepreneurship I Learned From My Dad Who Taught Me How To Ride A Bicycle
After crashing your startup, you really only have two choices. Your first decision is the most important one if you were to eventually recover from your failure. Either you walk away from being an entrepreneur forever and never look back, or you stop crying and get your butt off the ground and start riding again.
See? At first you just want a simple language to give instructions to the computer, so you can worry about learning how to come up with the algorithms that you need to translate.
What's hyperbole?

You no comment good.
Oh yeah, great idea. That would really solve his "I'm distracted from my startup" problem.
"If people use languages with mutable variables they have to know how pointers work" -> wrong. They don't. That's the idea of a high-level language, to hide how the computer interprets your instructions so you can focus on giving instructions.

Now, understanding pointer would help a lot, but that's a different argument.
I got invited to an interview, what'll I do?

I got rejected, what'll I do?

PHP sucks.

C# sucks.

Microsoft sucks.

Ruby rules!

Best. Interface. Ever.

Scientists in Sweden produce Britney Spears in a petri dish.

pg is great.

Where can I get the best corporate lawyer in the world for free?

Anyone want to buy some legal drugs?

Ask YC: When I sit too long in this chair, my back hurts. What should I do? YC: Switch chairs.

YC should start a franchise in Europe.

YC should start a franchise in Latin America.

YC should start a franchise in Asia.

YC should start a franchise in Brooklyn.

Ask YC: I don't know how to code? How can I build a web app that makes a million dollars by Tuesday?

Ask YC: I need motivation. Any hints?

There. You just read all of today's YC news. Now close your browser and get to work.
You forgot:

Lisp is great

Why are people in big companies so dumb?

Why FaceBook sux

Why FaceBook rocks!

Why are we talking so much about FaceBook?

Google is good

Google is bad

Google is misunderstood

How can I get Google to buy my company?
hard to have a democracy when people don't know what "agriculture" is.

According to the journalist's source, when posed the stumper about definining agriculture, "Not a single student could do it". I sometimes feel like I'm the only adult who actually remembers being young, or remembers going to school. Remember school: Often enough, a teacher (or professor) would stand up, clear his throat, and grandiloquently ask,

Now, could somebody define the word "agriculture"?.

Of course, everyone rolls his eyes, and nobody answers the stupid question. NOBODY answers those questions--because you automatically become an idiot when you do so:

I believe I know the answer, sir. Agriculture is the process of raising edible plantlife on a large scale for purposes of trade and direct consumption[1]

Obviously, the journalist's methodology suggests that he himself is a functional illiterate. NO--you don't ask your friend the cranky high school teacher his opinion and then extrapolate it out to the world. Bad science. Bad reporting.

People don't change that much, really. Evolution is slow. A stupid generation (evidenced by IM-engendered spelling skills) can easily be followed by a smart one. Genuine declines in intelligence are possible, but that has to do with dysgenics, a subject which most San Francisco newspapers generally won't touch on.

[1] I got this off the top of my head--I hope it's right.
I modded you up. Good point.

I didn't view it as science or reporting. I felt the guy was just trying to write his weekly column. Such articles are typically mismashes of personal stories, legend, observations, opinion, etc.

There is a bit of generational relativism going on (as far as opinion, not science or fact.) Are we really worse off than those generations 100 years ago that could live off the land? Probably not -- unless we need to start living off the land again. Then it would suck. We're evolving into something. I think it's interesting to speculate about what that might be.
I don't agree. The difference between copying a thing and referring to a thing is not some low level technical detail that you can abstract from. It's a fundamental structure of any system, not just computer systems.
A thesis that we want the machines to understand our high-level vision of an algorithm existed long before computers were invented. However, we failed to create such a system that would interpret our vision of a program ("there is a ball") and execute it appropriately. Wish you good luck in inventing such a system.

The reality is, programmers who don't understand how computers work can write ridiculously bad code. I saw it a lot. Efficiency does become an issue when a program is so bad and slow and unreliable that a computer can't execute it in a reasonably useful way.

I'd never hire a Python programmer who doesn't know what dynamic array is all about or what CPUs are dealing with when they run a program -- essentially addresses and numbers.

A recent YCnews post comes to mind: if you want to find a good PHP programmer you have to announce a C++ vacancy with no single word about PHP.
Perspective: Facebook Is Now 5th Most Valuable U.S. Internet Company
I'd take a C++ expert who also knew language X over somebody who just knew language X any day of the week. Being able to do something hard without shooting your foot off and understanding how the bits and bytes work make you better no matter what language you're using.
Miniaturization of Venture Capital
There have been a couple of discussions on venturewoods earlier regarding angel funding models, including Ycombinator. An excellent article on Read Write Web outlines the challenges the venture capital is facing. Amongst the salient ones include:
I would look at http://www.symfony-project.com/ - the PHP framework del.icio.us is being rewritten in

and

http://junctionphp.com/ - Junction: a PHP 5 object persistence layer
"Throughout our school life we think the Pythagorean Theorem is about triangles and geometry." Some of us still do. What he is talking about is Pythagorean triples. Well, maybe. Energy, for example, does not have to be an integer, so it's not really about Pythagorean triples. What is the point?
Really a lot of my pain is the IDE (eclipe is a step back from something like VS.NET 2k5 with Resharper, come on ctrl-tab doesn't work!), but some of the things feel half baked (if you are doing "code behind" components, you have to name them different things since there's no concept of partial classes or even files with the same name, but different extensions (mostly because the .mxml is compiled to .as3 with the same file name I think)).

You end up having to write a lot of custom controls simply because the ones built in are great for rapid POC type stuff, but aren't necessarily what you want for your "real" app. Then you're just trading one set of community developed stuff for another.

I also looked at OpenLazslo and it's pretty neat, although it's lack of IDE, community support and the fact that it's stuff crashed my system a bunch (nothing like having to install tomcat on a vista box) turned me off (the ol site was down while I was testing it, and has been down numerous times when I've been demoing it, so that's a huge problem).
"In D, objects are always allocated on the heap. ... <snip> ... So you can eliminate the -> operator. It's always obj.property and your code becomes that much easier to read."

I think one of the best reasons still to use c++ is your control over memory and the speed which you can only get when allocating objects on the stack. Maybe that was the sort of problem he was fighting with in c++, but for me it's an argument which would make D a worse choice than c++ for those tasks where I would use c++ now.
Yes, instead of prognosticating, do something. The domain and business experience are more important than the hacking stuff you learn (come on, you don't want to be a hacker in 10 years anyway, do you?)
i have thought about that too, my firewall even has the ability to block certain sites during certain hours, but i figure that I will just end up trying to hack my own router.

not because i really want to, but because it would become a game for my self.

who knows maybe then i would end up starting an info sec company instead.
SVG with JavaScript on both client and server and code migration.
Subscribe to this RSS feed:
http://www.aiderss.com/rss/best/news.ycombinator.com
That's not a bad idea. I still have an internet connection. When I starting coding, I unplug from the cable modem. I'm too lazy to plug it back in so I get several hours of work done that way.
It's really hard to tell what he's getting at with that comment. It appears that there is a stated goal of making it a 'systems' programming language, suitable for replacing C and C++.

Based on features such as the ability to write source code in 6 different character formats, it doesn't seem like the sort of features he's talking about imply sacrificing anything in the language.

It probably means things like this (http://www.digitalmars.com/d/lex.html)

Complex literals are not tokens, but are assembled from real and imaginary expressions in the semantic analysis:

4.5 + 6.2i	// complex number

Stuff that is invisible to a programmer. (This was a completely random example, I don't know whether it's really such an optimization or not.)

One reason to make a compiler easy to write is that it makes the language more portable, which is an important feature of a low-level systems language. Low level languages are more difficult to make portable. One of the reasons the original C was so successful is that it was (relatively) easy to implement a compiler for your architecture.
I think it means mostly that D is easier to parse than c++, which is not just an advantage for compiler writers, but also for any other tool which has to work with the sourcecode.
Why it is Easier to be a Student Entrepreneur
Just to add:

Google made a great business model by placing relevant adverts along side natural search results. People click on them because in some cases, they are what they wanted to find.

Facebook advertising 'Axe' in my minifeed (Which is supposed to tell me whats going on with friends etc), is totally wrong. It's like a popup. It's in no way relevant.
No one will click on it/care about it, and it'll just drive users away to whatever's next.
M&A Hacks
http://news.ycombinator.com/item?id=69119

I think nostro was on point with that post for both burnout, and reading too much hacker.news. I think we're all afflicted with it to some extent because we're invested in this community, so we kinda like to catch-up on the going-ons of our community. However, if it's taking over to the point that you can't get work done, that should indicate that whatever your startup is just isn't interesting to you, or has no meaning. Ideally, your startup idea should be something you're glad you did on your deathbed. Otherwise, you might as well work for someone else.

Sometimes, I forget why what I'm working on has any meaning. It's easy to get lost in the details. That's why it helps to write down a clear and concise vision, so you can refer back to it.

That said, you just have to know how you work best. block hacker.news when you work best. open the floodgates when you have your low points in the day. It's different for everyone.
Plus frankly if one count the number of hours a kid spends at school and the number of hours a kid spends at home, parents should have a rather big influence on the kid's education ;-)
How possible is it that this rumor is true, but still goes unreported by the mainstream media and unknown to Facebook employees?
Use news.yc to motivate you: Post here what improvement you're going to make to your startup in the next week, then go do it. If you don't do it I volunteer to ridicule you. Would that motivate you?

If you post "I'm going to make improvement X" to my startup and later write "I did improvement X" you would add some much-needed variety to news.yc. You'll also be admired as someone who's actually doing something. Would that motivate you?

Get more motivation first. Use self-discipline when there's no other option. Once you're motivated, without even thinking about it you'll cut your news.yc reading down to just the really useful stuff.
I think you are partially right as well. The deeper issue is that because buyers aren't the users, makers of enterprise software have make stupid things like feature comparison checklists.

Because buyers aren't the users, enterprise software companies must stuff in every possible feature they can. We all know that more features != better system.

We're still stuck with the question of why stupid things like comparison charts exist though. It all comes down to accountability. Buyers need to have something to cover their asses if the system doesn't work out. "See, look at this comparison chart - I bought the best system out there. Just look how many more features it has."
>Enterprise software sucks because it is a hard, extremely complex problem space.

I couldn't disagree more. I don't know how many enterprise systems I've worked on that are unnecessarily complex.
MySpace Launches Its First Online TV Series
Project tracking IS enterprise software kind of stuff. 37Signals does it very, very well. They make it look just another "small project", because that's what enterprise stuff should be like.
Waking up to the important things
I especially like what Steve Jobs had to say.
Science courses nearly extinct in elementary grades, study finds
"-- 80 percent of teachers say they spend less than an hour each week teaching science.

-- 16 percent of the elementary teachers say they teach no science at all.

-- Ten times as many teachers say they feel unprepared to teach science than feel unprepared to teach math or reading.

-- Fewer than half of Bay Area fifth-graders scored at grade level or above on last spring's California Standards Test in science."
Yes. These systems gravitate towards comparison charts and cost-per-seat discussions, when they should gravitate towards ROI discussions. But ROI is notoriously difficult to compute on large enterprise systems.

And let's not forget that even if you make the buyers the users, even a really small number of users will have conflicting requests for features. You could give everybody in the organization fifty bucks to spend. That would make the buyers the users. But what would happen? Everybody would be happy that they'd solved the 3 or 4 things that were most important to them in the simplest way possible. The remaining situation would be lethal for the larger organization: loss of reporting, command-and-control, re-use of data, standardized products to train newcomers on, etc.

In the end, it's a choice. You can make "solve the simple problem" programs and sell them to lots of users who will then create chaos in the organization (because they fix only the perceived immediate needs of a subset of users) or you create feature-rich, bloated software that does everything for everybody and that's hard to use (and possibly impossible to adapt) but is attractive to the larger organization. Companies have been making lots of money on both of those options.

Put a different way: users in an organization have immediate, day-to-day needs that only reflect a very small part of the greater needs of the organization. So somebody has to compromise. There's no free lunch.
Why Microsoft Needed Facebook & Google Didn't
To state the obvious:
1. to do good work, you must isolate yourself from distractions.

2. The internet is a distraction

3. The conundrum: you often need an internet connection to test your work, learn more about something new, communicate with your team/repository/bug-tracker.

I've seen a simple utility to block certain sites when you're working, but the most powerful solution is between your ears.
Is Arrington About To Sell Out?
Solving multiple, overlapping problems for thousands of users all over the world is non-trivial. Pick any solution space, and I can give you a dozen things you haven't thought about. 95% of them aren't important to one or another subset of users, and probably actually get in the way of their work. The problem is that the 95% of feature bloat isn't the same for all the users!

The trick is not to deny complexity or embrace it. The trick is to make rational compromises. Start with something simple and add just enough bells and whistles to get most of what's needed done. But that's a much more painful and difficult process than just buying some big product off the shelf.
Or, you can get really good at convincing buyers that your simple-to-the-point solution IS what they need. That's so much harder to do though.
Congressman to Comcast: Stop interfering with BitTorrent
I used Pascal in high school, which was over 10 years ago. We did searching and sorting algorithms, linked lists, queues, and some other stuff I don't remember too well. Then I did it all again in college because they didn't accept AP credit unless you specifically complained and demanded to skip the introductory class. (Which wasn't a 6.001 equivalent)
It's Fun to Play With Stuff (or Why I'm Glad I Switched to the Mac)
I think this is one of those big wars that will go on forever. You see great products, like IM, making inroads into the Enterprise Software space. I think you could make a great go at it selling simple software that does simple stuff directly to the users, bypassing the CIO guys.

But that's not going to make you a lot of friends. :)
And you forgot:

Ask YC: How can I write Facebook in Lisp by next Tuesday?

I love||hate apple... steve jobs is so brilliant||crazy!

I can't believe you modded me down!

Zero to rich with Ruby on Rails in 30 days.

Google clones DHH in a petri dish.
I have no strong opinion about whether C is a good learning language or not. I'd tend to say no.

However, if I was designing a practical college curriculum, I would require a course early-on that involved detailed instruction on how C actually works, as well as extensive practice using it and exploring its tricky areas. It might correspond with an introduction to assemblers, computer architecture, or operating systems. The catch is having an instructor that actually knows C well enough to teach it.
Some other robotics startups with promise:
Sebastian Thrun's stealth startup Vutool, in SF area.

Aaron Edsinger's startup in SF, Meka Robotics:
http://mekabot.com/
He made Domo
http://people.csail.mit.edu/jaweber/domo/index.html

Kiva Systems in Boston:
http://www.kivasystems.com/

Q Robotics, also in stealth mode in Boston. Some very smart people there.
http://www.qrobotics.com/

I'd list Anybots if I knew more about their plan. TLB?

Also, do you note a pattern on the locations? :)