I've heard that a co-worker of mine upgraded his MBP's SSD and RAM.
This website, http://www.everymac.com/systems/apple/macbook-air/macbook-air-faq/macbook-air-mid-2012-how-to-replace-upgrade-ssd-storage.html, seems to imply that the only thing you need is a funky screwdriver.
Back in the 90s, when computers cost $5,000-$10,000 in today's dollars, it made sense to keep upgrading them. Now the top-of-the-line computers are cheap enough that it's easier to just buy one that you can afford to replace every 4 years or so.
Let's not forget how bug free a framework used widely by thousands will be - there's no job security there at all if there's no bugfixing! But if we write our own, then there will surely be some horrific bug in the field that we can work until 4AM to fix, and management will call us heroes!
Counter that with the amount of time I've spent wresting design flaws due to well-known but poorly-chosen frameworks.
Don't pick a framework because you assume that you're supposed to:
- Choose correct design patterns
- Prefer well-encapsulated libraries with clear purposes
- Only use frameworks that directly add value to your chosen design patterns
The issue with frameworks is that they often touch all layers of a program, or product. If the wrong framework is chosen, (or built,) then the entire project must be refactored to recover from the mistake. That is why it's critical to understand the correct design pattern before choosing a framework or building your own.
18 months ago, I wanted to buy a BlackBerry that ran Android, but they didn't exist!
IMO, I think it would have made sense to test-market a BlackBerry that ran Android. I'd really like real buttons on my phone.
I was able to get business-class internet through my employer. It's cheaper than consumer-grade internet, and doesn't force me to buy crap like a TV subscription. If you work for a large company, it might be available through your employee discount program.
I don't know what my cap is, but if I have one, it's much higher than I will ever hit. We use most of our bandwidth for streaming video.
Start locking your computer when you walk away from it.
Spend time thinking about the different between Software Engineering vs. Computer Science. It's kind of like the difference between Physics and Mechanical Engineering. Some schools now offer degrees in Software Engineering for this reason.
One of the most useful classes I took was an entry-level Mechanical Engineering class. The reason is that the "Engineering" approach and mindset is needed in application development; yet a "Science" degree often doesn't emphasis this enough.
When you're past the hurdle of math classes, look at fun engineering classes outside of the Computer Science discipline. You'll actually learn lessons that you can apply outside of college. For me, "Technology of Alpine Skiing" turned out to actually be useful, and I got to go skiing for a grade!