HNHacker News
TopNewBestAskShowJobs

yrome78

2 karma · joined February 21, 2012

submissionscomments
yrome78··on What is the value of a Computer Science degree?
The phrase "You have to start somewhere" comes to mind. A CS degree is a more formal and substantial pursuit than what you may have picked up doing it yourself. Could you code without a degree? Of course. Are you very likely to be a better developer after completion? Yes.

I think a lot of it comes down to establishing a set of tools that can be used for whatever problem you encounter. No matter the language or the problem you want to have at least a vague idea of how it might actually work. Further, when you in inherit a code base, you want to have the tools to dig in and find out how the thing works. And when problems arise, you want to be able to get inside the black box and ask things like "Does this result make sense."

A big missing piece in a CS degree is an understanding of the SDLC. The use of svn, tagging and build scripts is essential to any software development effort, and yet it is rarely mentioned. Creating elegant algorithms is great fun, but when the client is screaming that the code doesn't work and all you can say is "works on my machine", you'll wish you had the warm blanket of a proper build process.

yrome78··on Becoming an iOS Developer
I came to Objective-C from Java (server side web apps) and it really was quite a shock. However, once I got past the syntax , I found that it was just another OO language. Encapsulation, inheritance, interfaces, they were all there. I will say that while Apple (and the web) provide lots of examples of specific implementation details, they usually don't get past the simple stage of that one API. It's a bit more challenging to put all of them together in a way that is both good form and sensible for your problem.

Re learning: I highly recommend this site: http://cocoadevcentral.com/d/learn_objectivec/

Very helpful for getting your mind around basic concepts.

Re: Interface builder. I think the trick is knowing when to use it and when not to. Certainly it is incredibly useful for getting your layout exactly as you want it. (This was a refreshing change from html) But it can be cumbersome if you're trying to share common interface elements via subclassing or without wanting to load a nib file every time. Occasionally I would use it just to get the layout right and then implement the same interface in code.