3,765 karma · joined March 18, 2009
paksoy at Google's free email service
We are looking for a Architect in Residence who is a seasoned software engineer with 5+ years of experience and deep technical and professional insights.
As an Architect in Residence you will spend 3-9 months at Horizons. During this time you will mentor students one-on-one, teach advanced subjects in a classroom and oversee ambitious student projects.
We are a group of entrepreneurs and former engineers in technology who are passionate about bridging the gap between traditional education and the tech world.
Our students have gone on to win national hackathons, land jobs at tech giants, and raise money for their startups. We find high-potential, ambitious undergraduates from (many from top schools) and we fast-track their careers by empowering them with technical skills and a professional network. Our 12-16 week immersive program teaches full-stack web application development, entrepreneurship and software engineering.
To apply email your resume to mustafa@joinhorizons.com
Job description: https://angel.co/horizonsbootcamp/jobs/187808-architect-in-r...
If you find yourself asking "I already know about this, why is this on the front page?" Take a moment, you've just answered your own question.
Sure, generics don't have runtime overhead in Rust and Haskell but they have other costs. You always pay for abstractions some way.
Generics encourage over-generalizing behavior that runs counter to writing highly performant code. If you care about speed, you don't spend time making your code generic. You optimize closely to your use case.
But like I said, if I didn't care about GC or concurrency, I'd be writing C.
That's a good point though. A lot of people mean different things by systems programming.
But, for systems programming, abstractions suck. They always, always have a cost. When abstractions break, you not only have to deal with a broken system but the broken abstraction itself too. (Anyone who has ever seen a gcc compiler error for C++ knows how this feels.)
Therein lies Go's value proposition. It does not make it possible to make things pretty (ugh, nil). It just makes it impossible (ok, really hard) to overcomplicate things. When you write Go code, you can picture what the C equivalent would look like. You want to deal with errors? Here's an if statement. Data structures? Here's a struct. Generics? Here's another if statement, put it inside your for loop.
Obviously, Go is not the right choice of language for most things. When you're doing application development, you may be able to afford the cost of abstractions. But for tools that only need to do one thing and do it extremely well, it's either that or C. And I'm not going back to managing my own memory anytime soon.
Many price points, many products.
In the software world, free software products stay free even after they have become the dominant platform. The price is not artificially lowered to zero; at scale the cost of operating a free service is lower than the advertising revenue generated by it. This is actually the "natural" price for the product.
This is a good first draft, you just have to go through a couple more iterations.
Letterman: How did you know so much about computers then?
Hopper: I didn't. It was the first one.
What a beautiful tribute to Grace Hopper's pioneering spirit.The resume pile is where good ideas go to die. Faced with the fact that resumes are 99% useless, hiring managers latch on to things that are cozy and familiar, keywords, GPAs, brand-name school. This sucks, but don't let others' mistakes keep you from demonstrating your potential.