Degree Question
#16
(2014-10-20, 21:53)gnwade54 Wrote: Coding is piss easy but good designing much more hard to do. I would also recommend you learn something about networking. Don't jump straight into a degree.......never did me much good. However, Cisco, Checkpoint, Unix and Microsoft experience and courses did. Good luck.

Well if his sole purpose is to help improve xbmc. He might not need a degree. But to get a job it really really helps. Almost every coding job out there requires a degree or four years expereince. And there are a ton of jobs in that market right now. And not many people have gotten four years experience without a degree since the 90's. Some web dev jobs hire without degrees but usually only if you know people who work there.

Edit: Grammer
Reply
#17
Ok so I did a computer science degree (4 years, honours programme). Quite a while ago now and I took a massive detour away from computing in my career (deliberately). I have then got back in to some professional level work (for my business) and quite a bit of dabbling (xbmc addons, and various media processing related stuff to keep my home system doing fun things).

Along the way I have studied and (often professionally) used at least these
68K assembly C Ada Java Miranda Prolog Python Smalltalk PHP SQL Scripting - bash, tcsh, some javascript/jquery etc. etc
...and many others to a lesser degree. Also countless libraries/template systems that are almost languages in their own right.

I personally think starting high level is ok, as is starting low level. It depends on you - you probably know what sort of person you are - do you want the very nitty gritty or the high level concepts? do you want to drive hardware down at the metal, or are you more of a GUI or data oriented person? You can learn the essential concepts either way - the #1 thing is to pick a particular problem you have an interest in then doggedly pursue solving that problem, to the end. Whatever you do, the first code you write will be shit - just a struggle to get things working that takes forever and a day, and you'll find the lack of good clear documentation is an ever present issue. So you write little sub things to nut out what is going on. And you'll get better and quicker as you go. But your end result will most likely just be barely functioning rubbish. So once you finish - start again. Either the same problem or a similar one, and solve it better & cleaner. And you'll begin to think about making components re-usable so you don't have to endlessly repeat yourself. And you'll be on your way...

Programming in the small - bits here & there, isn't all that hard. Where it gets hard is learning to work within very big systems with lots of legacy baggage, or engineering the larger structures of complex new things. To do that well you begin to need a very solid understanding in things like data structures, but potentially also a broad understanding of all sorts of things from memory management, to inter process communication, race conditions, etc etc. The problem with not doing a degree is you tend to have some gaps as you will focus only on the things that interest you directly, most likely. Honestly I also think it depends on age a lot - if you're young, you might well need the discipline of a structured course to keep you on track with your learning and you'll inevitably get much wider exposure to things you may end up (or not!) - loving that you might not have tried. On the flipside if you're older there tends to be a LOT of basically wasted time and fluff/filler in any degree.

Some bits of xbmc aren't hard (certainly addons are pretty easy etc) - but if you want to go anywhere near core, xbmc from a birds eye view seems like a really vast, poorly documented, highly coupled c++ system that is definitely NOT the place I would recommend for your first learn to code. So I'd suggest - long before you even consider a proper degree - start with something achievable, like an addon, or you'll get de-motivated fast...and see if you like the sort of endless problem solving, testing and research that is the day to day of programming.

Anyway, just my blah de blah on it...
Addons I wrote &/or maintain:
OzWeather (Australian BOM weather) | Check Previous Episode | Playback Resumer | Unpause Jumpback | XSqueezeDisplay | (Legacy - XSqueeze & XZen)
Sorry, no help w/out a *full debug log*.
Reply
#18
In my university, here in the USA, Computer Science starts out with learning the concept of programming like ifs a loops and all the basic tools in python, java, and C. We learn a little software engineering (management and design) and a lot of math. We quickly move to complex algorithms and data structures to prepare you for the senior level classes. The senior level classes are all introductions so fields that you would further study for a Master or PhD, things like Computer Vision, Artificial Intelligence, Distributed Networks, Operating Systems, etc. That is just the bachelors, Masters and PhD piles more on top (PS PhD is ONLY for research, you will not get a normal job with a PhD).

In the beginning you learn to program and some basic math, but it quickly becomes more and more math, complex algorithms and design philosophies. CS IS HUGE, everyone has to specialize in something (though some fields practice everything but master nothing, like robotics). Try to do some research and talk with professors, freshmen year I started going to the robotics club and as the only one that showed up everyday I got offered a research job building a robot platform, something that still sticks with me now. I learned a lot from it, I had just finished Python and now I was working on the Raspberry Pi and Arduino programming in C/C++ (First time) to perform low level functions. I covered more that summer then I did in the first 2+ years of CS.

CS is not about programming, if you want to program learn it, go online and just practice. CS is about puzzle solving, applied math, looking at a problem and and finding a solution that no one thought of before. The traveling salesmen problem (google it) is a very simple concept but is a np complete problem and has not been solved. The magic that a computer can do all comes from the same simple functions but its how these functions are put together, with a little magic math, that allows your computer do everything that it can do. I spend much of my free time practicing to solve problems, not practicing programming, I look around for "hacker" challenges online (hackerrank.com is a good one). You must be driven to be great in most thing but in CS you must be really driven to be good. I wasn't driven enough in the beginning and I let my math slip now I will probably have to take summer classes or an extra semester, don't make that mistake. Motivation is fun but discipline works.

tl;dr: To program go online and practice, to understand how computers really work and how to be more then be a code monkey go for CS (though code monkey is not bad ether)

PS learn to properly debug early on it will save your life when you get to higher level languages.
Raspberry Pi Model B 2 1024MB @ 1.0Ghz w/OSMC
--Decommissioned-- Raspberry Pi Model B 512MB @ 1.0Ghz w/ 3TB USB Drive Running Open Media Vault
Reply
#19
Thank you all for your input and advice! I really appreciate it. A lot of good opinions and things I can use to make my decisions moving forward.
Reply

Logout Mark Read Team Forum Stats Members Help
Degree Question0