HN user

NTDF

6 karma
Posts2
Comments7
View on HN

This is objectively not true.

Immigrants have plenty to lose. Take my own example. Living in America for a few years (first as a graduate student and then as a software developer), I have made strong connections and a social life here. I lose everything if I don't make it.

There are two big problems for immigrants:

The Green Card process takes ~10 years. Imagine staying put in one company for 10 years. The legal immigration system is so haplessly broken that if I lose my job (say, late in the GC process), I get kicked out. My wife can't work. I cannot have kids without them confusing nationalities. I cannot buy a house. Immigrants are living on a thin strand, sacrificing a lot.

Motivated immigrants, who wish to start a company, cannot do so either because there are no visas to do so easily. Until we get a Green Card, we cannot quit our jobs and go on a road trip of the US, like my colleagues do. Realize that there is an opportunity cost, a small window, in which we all are highly motivated to start something. We immigrants typically waste that window in simply waiting for the Green Card to arrive (all-the-while, hoping we don't get laid-off).

The loss of this opportunity is one of the biggest reasons why many choose to head back to their own countries to start companies.

In summary, Immigrants have A LOT to lose. Grass is not green on this side either.

Source: Me. An Immigrant working in SV who's not allowed to start a company because of the ridiculous immigration system.

Is it really this hard for Americans to understand that this whole thing is not sustainable?

I am not an American but I have lived here for the last 3 years. There are few things that I find really strange.

What is wrong with the fee structure of universities here? The tuition is ridiculously high for the standard of undergraduate education. High tuition creates two very fundamental problems in the society.

First, barrier to entry is very high. Not everyone can afford college. This creates a class of undereducated people. Normally, a set of population being undereducated is not a problem (actually it is a good thing from the macroeconomic perspective). But that is not true for America. Life in America is ridiculously complex. There are multitude of choices for everything and everyone is expected to make informed decisions.

But the underclass does not know how to make such choices. The underclass never got a chance to get educated and well-informed of their choices. How the fuck does the American society think they will live their lives? Will they make good health choices? Good career decisions? How will the underclass sustain themselves?

Second, to solve the "barrier to education" problem, we created a loan program which gives money to every one. Econ 101: As a necessity for growth, a loan has to make a profit. The government giving out easy loans is not a solution at all. This just pushes the problem to a point in future. Meanwhile, the loans create underclass 2, a generation coming out of school with debt. I've seen friends paying their loans off until 10 years after graduation. What a burden. This burdened underclass 2 does not have the freedom to switch jobs easily, take risks, make expensive (hut healthy) choices. For a consumer-driven economy like we have in America, this is toxic.

How hard is it to understand that we are just pushing the onus on to someone else in the future. Honestly, I'm quite scared to have kids here. They are going to suffer a lot. Why?

- Because even with a decent salary, I won't be able to buy a house, send kids to good schools and activities, save for their college education and make healthy lifestyle choices, all at the same time. Forget starting my own business or vacations or pursuing my hobbies

- So, my kids will end up taking a toxic loan which they'll take years to pay off

- That means when (if) they marry and have kids, they are in a worse position than I am right now to do anything. Their off-springs will have it even worse.

There is no guarantee that this will not burst like the housing bubble. The people affected by these would be young citizens. These same young citizens (and their off-springs) have to lead the country to the future.

If we value freedom and individualism so much here, the barrier to getting information and sound advice should be much much lower...aka education and healthcare should be fucking cheap. Education should not be a profiteering pipe-dream for anyone. It is a matter of people's lives.

A few folks will call me socialist for saying this but hey, if making education and healthcare cheap does not make sense to you, I don't give a fuck about what you call me. Btw, I am no Obama fan either.

At the current rate, all we are creating is underclasses that is not good for a consumer-economy reeling in debt. (sidenote: A consumer-based economy submerged in debt is never good news. Consumer-based economies need citizens with sound financial status to keep them the economic engine running)

Honestly, if Linus was my boss, I'd quit my job cursing him. He has a lot going for him. I understand why he needs to be like this and why it works, but in all seriousness, I'd much rather be like Eric Schmidt or Bill Joy.

I am a Georgia Tech alum. I had taken the Advanced OS class and High Performance Computer Architecture classes. My then roommate had taken the Networks class too.

I strongly recommend taking those classes, if you get the chance. The concepts they teach blew me away completely. These classes helped me make a conscious decision, to not be a regular programmer after I graduate. I wanted to be an engineer working on the hard stuff. For folks who have such motivation, these courses are amazing.

The professors are really great and love teaching. They will try to make the class fun (in nerdy ways). They are at the bleeding edge of research in their domains and know stuff inside out.

Beware:

- These classes are non-trivial. Most of these classes cannot be done without full focus. So, if you are employed full-time, please reconsider. You more than likely need to devote 3+ hours everyday to study.

- For example, Advanced OS class will require you to read 40+ research papers. You will actually have trick questions in mid-term and finals where you'll need to know intricate details of each paper to answer them correctly

- Adding to the above point, the HPC class will have intensive math homework. There were problems to calculate IPC of a fake machine which took me 3 WHITEBOARDS to figure out the level of parallelism. If you have never taken a Computer Architecture class before, please re-consider.

- Georgia Tech, notoriously, grades everyone equally. Meaning, you will not get any benefits for not being on campus. If they end up grading you with on-campus students, rest assured you are already behind. Not to mention, students taking these courses are mostly PhDs. They know the stuff inside out already.

- Urban dictionary actually is very true in its definition of what this school is: http://www.urbandictionary.com/define.php?term=georgia%20tec...

- The grading system is ruthless. You will either get an A or B or C or D. There are no +ves and -ves. A = 4.0, B = 3.0, C = 2.0. In short, it is unacceptable to get even a B in all classes

- These classes are not like a regular Udacity or Coursera classes. You will not learn any programming in them. They expect you to know programming cold. The students who take these courses want to know how computers work and are highly motivated. See the top answer by a Georgia tech student: https://www.quora.com/Computer-Science/How-do-computers-work...

All said, if you come out of this coursework unscathed, you'll have a new-found appreciation for life and computers. I do not regret doing my Masters there.

As a person just outside the 2% (yes, I failed those entrance exams) and yet currently residing in Silicon Valley, I disagree. I would much rather preserve the sanctity of those few colleges.

I'd rather have other universities collaborate/compete with the IITs. Not very different from how CMU is competing with IVY league universities here.

Learn C 13 years ago

Very interesting thread. I moved to SV a year ago and my perspective on how modern programmers think has changed enormously.

As a background, I am a software engineer on route to being a cpu architect. My job is to understand how hardware works and what changes need to go into the instruction set to allow modern software work better. I have some thoughts to share.

I also think that a lot of folks in HN are true software engineers with little hardware background. So, most arguments simply gloss over why (or why not) use C.

Let us all be very clear. C is not a great language for app development. This comes from a person who has worked his entire life with C. I have no qualms in saying this.

C is primarily just an abstraction over assembly (not the same as machine). With this in mind, you can safely assume C to be a "stateful" language. By "stateful" I mean, each statement gets "executed" and the state of the CPU and memory changes. The fact that multiple assembly instructions can get produced per-line of C is what makes it better than lower languages.

That is all that is there in C. Everything else is an add-on. The standard library functions (strlen(), printf() etc.) are all essentially a few assembly instructions clubbed together.

Now, as it turns out, oop and other paradigms were created for the sole purpose of making it easy to program. In other words, we want to lower the barrier of entry into programming and have more programmers do things that they would normally never be able to do. We were ready to take a performance penalty with higher level languages so that more people can make useful stuff with a computer.

For example, oop was made to create the illusion that a program really is objects interacting with each other or functional execution. However, folks well versed with the computer know that oop is eventually executed sequentially.

The whole eco-system of web and app developers is able to thrive because they do not have to deal with 'nasty' (I personally find them amazing) issues of why things work the way they do. Let's just say that programming is becoming commoditized and the barrier to programming is made lower by them not having to deal with these issues. If we were still programming in C, most programmers would have dropped out of their CS classes when they were freshmen.

An analogy would be you don't need to understand the internals of a combustion engine to drive a car.

So, should everyone learn C? As someone who cares about expanding the powers of a computer, I do not think wasting resources on it is worthwhile. There are enough people maintaining C and using it for great purposes. Commodity programming (application level) should not involve C as far as possible. Cpus are fast enough to handle bloatware languages. I would personally prefer people thinking of newer languages/paradigms that would expand on what people can do with a computer.

As a programmer, you do not need to learn it. It is certainly helpful and I would definitely encourage folks to try to understand it, if you are curious. But no point wasting your time on it if all you are going to do is application level development.

Now, if you are working on something really deep and involved, the story changes completely. For example, folks working on router/switch programs, fast search engines, OS, devices, simulations (basically everything cool in my biased mind) need to understand it.

An analogy is that an you do not need to understand nitty-gritty details about engines unless you are building something in the range of a Ferrari.

Just my thoughts.