6 ms·
Teaching yourself to code while getting a CS degree is best IMO. Just teaching yourself you'll likely miss lots of topics and not challenge yourself as much.
by greggman2 7y ago
Teaching yourself to code while getting a CS degree is best IMO.
Just teaching yourself you'll likely miss lots of topics and not challenge yourself as much.
Conversely I've met plenty of students that don't really care about the topic and are just taking the class to get a job.
So do both! Take the class and teach yourself. In other words pursue your hobbies and use code where those hobbies match. Learn the things you need to achieve your hobby goals. All while taking CS classes and as much as possible making those two things overlap
- taurath 7y agoTeach yourself enough to get a useful job, then constantly be learning while making money. Worked for me. Always assume there are ways to be doing it better, and never be the most experienced person in the room (try to be the newest!). That took me from decent with computers to senior engineer - the hardest part is getting the first job. It will seem random and you may have to not take much money at first. Or if you want to fast track and can afford it go to university.
- rejschaap 7y agoUpvoted, I think people don't really understand how little time is spent on actually learning to program in an average computer science degree. If you don't study programming yourself and have intrinsic motivation to do so, you really can't program all that well despite having a CS degree.
- EliRivers 7y agoWhile I didn't do a CS degree, from what I could tell of friends who were doing that, it was a course in mathematical logic and algorithms built with that logic, and analysis of problems in such a way that they could be explored and solved using the logic, with some modules demonstrating applications of that mathematical logic such as operating systems and compilers, which were helpful tools created out of the logic in order to facilitate further exploration of the same. A big clue going in, I suppose, was that the CS degree entry requirements demanded applicants to have mathematics A-Level (i.e. spent, under the typical UK system, about a third of their age 16-17 full-time education exclusively on mathematics). It was in no way intended to be, and clearly was not, a degree teaching people how to be software engineers or how to program beyond being able to put the logic, in the chosen notation, on the screen. This was back at around the turn of the millennium.
- monk_e_boy 7y agoThe degree covers a lot of ground. Different languages, AI, robotics, people management, teams, etc etc Mostly it informs the student of their current level of understanding. 70% of lecturing is marking assignments. That’s what you don’t get when you teach yourself.
- EliRivers 7y agoWhat can I say. My fellows did not cover AI, robotics or people management. Sounds like it's become a lot more of a practical degree in the last twenty years. Much more vocational, perhaps. There was a time when CS graduates would be hired and big companies would immediately start training them in how to engineer software, but now people expect to finish a CS degree and be capable of a related but different discipline; software engineering. I can only assume that CS degrees have changed to meet the demand.
- lol768 7y ago> What can I say. My fellows did not cover AI, robotics or people management. Sounds like it's become a lot more of a practical degree in the last twenty years. Honestly, it needs to be. Employers are not going to be impressed with grads who've not encountered basic things like version control by the time they've graduated - and it's irresponsible to market a degree as a stepping stone to a e.g. software engineering job without covering these basics properly. The theory is still incredibly important - mathematics, algorithms, performance & time complexity, data structures etc. It underpins everything we do in industry. But there really needs to be some element of practical software engineering too because the vast majority of the UG cohort are there to get a job.
- EliRivers 7y agoEmployers are not going to be impressed with grads who've not encountered basic things like version control by the time they've graduate That's true now. It certainly wasn't true in the past; especially with larger companies who would hire people with the intention of training them. I wonder if there will be a bifurcation in education. To some degree (excuse the pun), there already is; software engineering "boot camps" and the like that teach software engineering rather than CS. Maybe we'll see that split reach upwards to the formal education level; a more vocational college for the software engineers, a more mathematical alternative for the informatics enthusiasts.
- mmcnl 7y agoThis is the only correct answer. So many times these questions are posed as a false dichotomy. The simple answer is: why not both? That being said, personally I thought for a long time that I didn't need to study CS and could teach myself to code (which is true), however I do notice that sometimes I lack a deep fundamental understanding of CS, which I regret.
- newswasboring 7y agoIs it really possible to apply CS skills to all hobbies? If yes then how do you apply CS to hobbies like woodworking or crochet? The only thing I can think of is a retail site, but then again why wouldn't you just use something like tindie? Or should people who don't do coding related hobbies not do CS? Which is a special requirement just for this major. People in civil or biomedical engineering don't apply their majors to their hobbies.
- steverb 7y agoIn the pursuit of your hobbies, you will find problems. Many of those problems can be solved (or made less onerous) through coding up a toy app. Or you can tackle the really hard problems if you want. Make a CNC lathe for wood working. Maybe create an app to layout your cuts in the most efficient way. I don't know enough about crotchet to suggest anything...but I bet there are problems to be solved. As far as why you wouldn't use an already existing app? Why would you build a birdhouse from scratch when you just go buy one?
- SolaceQuantum 7y agoCrochet definitely has software opportunities. I know someone building their own custom pattern generator for their own purposes, and also there are plenty of crochet stitches that haven't yet been known to be capable of being done by a machine! I wouldn't be surprised if you could apply modeling and wood quality simulations into a software program to help your woodworking, too. My hobby is fiction writing. But hey, Scrivener exists for god's sake.
- shrubble 7y agoGriswold not only came up with the programming languages SNOBOL and Icon, but later in his life dealt with weaving patterns mathematically and computationally. E.g. Designing Weave Patterns Using Boolean Operations... https://www2.cs.arizona.edu/patterns/weaving/webdocs/gre_bol3.pdf https://www2.cs.arizona.edu/patterns/weaving/webdocs/gre_bol...
- BonesJustice 7y agoIf I were asked to impart one piece of advice to prospective CS students, it would be to take advantage of your school’s coop work program or, if there isn’t one, to try and find a recurring internship. Nothing beats real world experience, and the sooner you can put theory into practice, the better. Additional learning on your own is, of course, also a great idea. Pick a project you’d like to do, and then do it. Or find an interesting open source project, explore the code base, and try tackling a bug report or two.
- kbsletten 7y agoI was astounded how much better I was than my classmates at coding, testing, debugging, etc. I attribute all of it to the 25 hours a week I spent at work.
- mettamage 7y agoPersonal story, sorry if I ramble a bit (I put things in footnotes when it really became a huge tangent), I don't have time to edit to make it short and snappy. --- I agree with this, I didn't take this approach and I'm regretting it (in a way). I'm in the computer science camp and just trusted that my education in it would be fine. Instead, I studied other things on the side (working on the side as a TA and studying psychology were my side projects and in my final years web dev, which is how I know what I've missed in my early years). The trade-off is a tough one though: studying psychology and being a TA made me a much more well-rounded person. I have so much more confidence in my social skills. I would not have gotten that if I'd have teach myself coding on the side as well, not even if I'd do freelance projects on the side as well [1]. Not learning how to code as a web or app dev really limited my growth because of a lack of context. Discovering HN 3 years ago saved me a bit from it [2]. Now that I do have some context, I can more easily see how abstract topics such as theoretical CS or algorithms are important as they force you to simulate code in your head and not rely on a debugger! But I could only gain that context by teaching other people JavaScript and realizing that in the beginning stages, learning algorithmic thinking is the toughest still to become a web developer [3]. If I'd have learned web dev or taught web dev earlier on during my studies, I'd have understood the importance of abstract CS topics. Instead when I learned them I was bored out of my mind and it was such a shame that I was, I shouldn't have been bored. I should've been fascinated, because it is fascinating. Unfortunately, I couldn't see it at the time. But hey, at least now I can! [1] Because just like computer science, psychology taught me something formal that I needed to learn but wouldn't be able to learn on my own which is: how to detect nonsense when people talk about the science of human behavior. I need a lot of formal training on human behavior, so knowing how to distinguish a good vs a bad learning source is of paramount importance, especially because about 1 in 20 resources are decent and the other 19 will make you worse off. [2] Because it taught me general industry concept simply by reading the front page while also keeping my interest high in other topics. [3] Almost everyone has some eye for design, so they are able to have that as a reference. HTML and CSS basics are always easy enough to learn for people. Where they struggle is with JavaScript and mostly stepping through code. The people who are mathematically inclined are the only people who will learn the basics quickly.
- matwood 7y ago> Teaching yourself to code while getting a CS degree is best IMO. This is effectively what I did. I found a job at a small company programming part time while I was still in school. Class was very much this is how things should work, and the job was this is how things actually work when you're coding for clients with unrealistic schedules just trying to make rent. I learned a lot in both scenarios. The other thing I would add is to take additional classes other than CS/math. Most people in CS are there because they live and breath computers. Getting exposure to other subjects is how someone can standout and/or get that first idea for their own business.
- bachmeier 7y ago> the job was this is how things actually work when you're coding for clients with unrealistic schedules just trying to make rent This description comes with an important disclaimer. You learned how things worked at a particular company and for the one or more projects that you were assigned. There's no reason to think any of the knowledge you pick up in a specific job will be valued outside the company, or even in a different team within the company. The PHP you learn at one company won't help with a different company using the latest JS framework, and the skills you learn at a small company might not even get you an interview at a large corporation. This is not to say there is anything wrong with your answer. I see similar statements all over the place, but seldom does anyone clarify the part about how specific those skills are. "I have a degree in CS from Stanford" is not specific at all.
- matwood 7y agoYes and no. Every project I've had at a job was larger and had more consequence than anything I did in school. Learning how to deal with those pressures is valuable beyond the particulars of the given job.
- deleted 7y ago[deleted]
- thrower123 7y agoIf you don't teach yourself to program on your own while you are doing a CS degree, chances are good that you won't be able to step into a software job and be effective without considerable ramp up time. I've seen too many people when I was in school myself and subsequently interviewing recent grads, where people knew all the theory, but could barely pass a FizzBuzz test. You just don't actually have to write enough code in most CS programs to become competent at it, without doing it for outside reasons.
- buckminster 7y agoWhy wait for university? Teach yourself to code before you do the CS degree. I've always found it easier to understand the theory when I already understand the practice.
- goshx 7y agoTL;DR: doing this is what ruined my desire to pursue the CS degree. I started working on web development before my CS classes started, back in 2001. Web was just not part of the curriculum, and when web related classes were introduced, they were using Java for the job. I was working with PHP, so I absolutely hated the idea that I’d have to go home to learn to code in a different language (because the professor didn’t teach it at all) to be able to complete the homework, while I could be learning more about what I could actually use in my daily job. When all the agile trend started, TDD, etc. it was even worse. Professors were stuck in the past or in academia, not having a clue of what was happening in the market. Eventually I dropped out.
- analog31 7y agoIndeed, or teach yourself to code while getting a degree in virtually anything interesting. If you've committed yourself to attending college and getting a 4 year degree for reasons good or bad, why does it have to be CS? How about physics, or math, or poetry? Use the 4 years to get "domain knowledge" or even just to develop a rewarding hobby that gets you through the days when programming seems like the pits. I learned to code while in high school (in 1981), and had summer internships in a computer facility. My mom was teaching CS at an extension campus of a state university at the time. She was the one who didn't think a CS degree was necessary for becoming a programmer. Her students were getting good jobs after 1 year in her class. And the programming work that I observed at my internships seemed like it would be ultimately boring. So I went to a liberal arts college and got a double major in math and physics. At the college, it seemed like the people doing "cool" things with computers, were in the physics department. I kept learning more about programming, and also taught myself electronics. And then I went to grad school in physics. Granted, this was all before the Interwebz. A lot of people whom I've worked with over the years were programmers with degrees from all over the place: Natural science, philosophy, music, and so forth. The programmers with non-traditional backgrounds tend to be happy to be earning more than they were in their original fields, but also tend to do non-traditional work. At my workplace, any job involving math goes to a handful of "math people" who happen to have math or physical science degrees. Survivor Bias Alert: I can't say that I discovered a magical career formula. Many of you are vastly richer than me. I'm reminded of the saying: "You go to war with the army you've got." I don't know if I can ever be self disciplined enough to sit in front of a programming screen all day. I do a great deal of programming, but my background allows me to do enough non-programming to keep me from losing my sanity. And my interest in electronics supports a fairly rewarding side-business. Becoming a programmer at age 19 isn't a panacea. My friends who did that, many of them were swept into the vortex of alcohol and consumer debt. A couple didn't survive. For some, going to college is a way to break away from their hometown culture, and try a new life.
- growse 7y agoThank you for articulating this in ways in which I cannot. A lot of people (though not everyone) have the opportunity to go to university (typically only once in their lifetime), to learn more about the mysteries of the universe, or about complex humanities, or about our history, art and anthropology, all of it from the leading experts in those fields. The fact that so many people seem to end up doing their subject because they think that's what they need to get a job to start a career they may or may not even have 10 years down the line seems a little sad to me.