Is compsci for me...?

<p>At 20 years old, and as a rising sophomore in college, I recently caught the start-up bug and find myself very interested in something in a long time - tech and entrepreneurship. </p>

<p>Problem is, I don't have any technical skills or background. I was always interested (and quite good) at visual design and can say that I'm a pretty creative guy, but for some reason, it never occurred to me in high school or at any point before now that being versed in programming or coding would be important for what I'm interested in (which makes me think that I might actually not be cut out for this tech/start-up thing as I clearly didn't have the early-adopter mindset to start before).</p>

<p>I know majoring in compsci is far more than developing and designing, but I can't help wonder if this is the major that I should be pursuing when I see all my friends who are really good at developing really cool apps and building really slick sites all major in CS. </p>

<p>Also, it seems as though everyone that's good at programming/coding/scripting (whatever is the correct terminology, idk) who actually do cool stuff started way before their high school years as a hobby, and when I look at myself at 20, I can't help but see myself as a wannabe.</p>

<p>Can I be one of the cool kids, too?</p>

<p>You certainly don’t have to start early, but it gives you a leg up.
Try a compsci book and see what you think of it.</p>

<p>I’m trying to teach myself this summer and I didn’t know where to start so I got a lynda subscription and am in the beginning stages of learning html/css/javascript but I’m aware this is far from representative of comp sci. Fwiw, I am enjoying it so far.</p>

<p>Are you starting your sophomore year of college or have you just completed it? I never took a computer science or programming classes before college since my crummy high school didn’t offer them, but I did fine as a CS undergrad. I’ve worked with guys who boast about how they were programming on their dad’s 80486 when they were 10 years old or whatever, but in all honesty, they don’t seem to be any better at programming than other guys who started late. </p>

<p>While it’s never too late to start, if you’re already two years into your college career, I think it may take you another three years to finish a computer science degree. If you enjoy learning how to program and you have enthusiasm for technology, I think those are good signs. Hopefully, you’ll enjoy the more theoretical aspects of computer science too.</p>

<p>

Learn a standard language (C++/Java/Python) from a book that focuses on CS. I’ve seen [Stroustrup:</a> Programming – Principles and Practice Using C++](<a href=“http://www.stroustrup.com/Programming/]Stroustrup:”>http://www.stroustrup.com/Programming/) suggested before, so you could give it a look. Or try Java or Python, both of which are easier to appreciate as a beginner.</p>

<p>No, I just finished my freshman year, so I’m not too worried about finishing my degree in time. I’m just a little worried that I won’t be able to keep up with everyone else in the major who seemingly have a lot of prior programming knowledge/experience.</p>

<p>Also, when you say theoretical aspects of computer science, are we talking math for the most part?</p>

<p>EDIT: @NeoDymium - my school’s intro CS course teaches java and the student CS group on campus claims on their site that they mostly work with python. This probably means I should start learning java or python, no?</p>

<p>Lastly, has anyone used lynda dot com? I find it pretty good, but if there are other, more efficient, proven ways to self-teach these languages, I’m all ears.</p>

<p>I suggest starting with Java because it’s what most intro courses start with. Someone else around here would probably advise you better on how to do so though.
Don’t worry about not enough programming experience. You’ll be fine if that’s your only problem.</p>

<p>Try w3schools.com, It’s not exactly comprehensive but it’s an easy site to navigate for beginners, you can practice your coding right on the site & It’s all free. Just a site to consider if anything.</p>

<p>Sent from my HTC Droid Incredible using the College Confidental app.</p>

<p>Hey powerbomb. What I meant by “more theoretical aspects” of computer science are topics like computability theory (whether or not a problem is computable), and complexity theory (how do you define the complexity of a problem, how do you compare the complexity of different classes of problems), etc.</p>

<p>You’ve already alluded that you know that computer science isn’t simply about learning how to write programs, so I think you’ll be okay. But you should also be aware that you’ll rarely be writing application level programs (android apps, etc.) for your CS courses.</p>

<p>One website that I like to use when I want to learn a new programming language is “Project Euler”. They have a bunch of math problems that you need to solve using programming (they’re designed so that you can’t solve them “by hand”). You can use any language you want to do the problems.</p>

<p>If you want to challenge yourself, I recommend picking up a book called “The Land of Lisp”. It’s a pretty awesome book.</p>

<p>@powerbomb,</p>

<p>You don’t have to major in CS to be successful in your own tech startup, but you have to be willing to put in a lot of personal time. This is probably the first thing you should ask yourself – how much time (if any) you want to put into developing your ideas.</p>

<p>Trust me, HTML and CSS have very little to do with Computer Science, and fairly little correlation with how you’ll do.</p>

<p>Javascript is useful to learn if you want to do web design, but I wouldn’t necessarily learn it first.</p>

<p>Mokonon suggested Lisp, which is certainly a very interesting language, but I should tell you that Lisp is a completely different style of programming than Java/Python/Javascript, and as such I don’t believe it should be the first language you ever learn.</p>

<p>

I’ve never heard of the site. I wouldn’t use it.</p>

<p>The best way to self-teach Java, in my opinion, is to buy and go through the book “Big Java” (get the latest edition). (That’s how I taught myself in HS, at least). It’s a very clearly written textbook.</p>

<p>The best way to self-teach Python is (the online textbook is free):
<a href=“https://thinkcspy.appspot.com/build/index.html[/url]”>https://thinkcspy.appspot.com/build/index.html&lt;/a&gt;
Also, I would advise learning Python 3, not Python 2. So make sure any textbook or tutorial you read is geared towards Python 3. (By the time you master Python, most Python libraries will support Python 3).</p>

<p>Both Java and Python have advantages/drawbacks for you.</p>

<p>Learning Java would prepare you for your first CS class, and it is also useful because you can program Android mobile apps in Java.</p>

<p>Learning Python is slightly easier, IMO, than learning Java (but not by a lot), and Python is useful for web development. A very popular, powerful, and fairly easy-to-use web framework, Django, is written in Python. Just as an example, both Instagr.am and Pinterest were built on top of Django (and Python).</p>

<p>In case you’re confused because you thought HTML/CSS were the web languages; Python/Django is what’s responsible for the “interactivity”/“dynamic-ness” of a web site. HTML/CSS are simply static - a site written in HTML doesn’t change unless you hand-code it again.</p>

<p>So you should decide between Java or Python.</p>

<p>I also read an article somewhere that the majority of successful startups are started by people past their 30s. So don’t feel pressured to start a company NOW.</p>

<p>EDIT: The link for Python is the wrong link. Here’s the newer version:
<a href=“http://interactivepython.org/courselib/static/thinkcspy/index.html[/url]”>http://interactivepython.org/courselib/static/thinkcspy/index.html&lt;/a&gt;
^This is nice because it allows you to run code in the browser (!!!)
The same site also has a very nice tutorial on data structures and algorithms in Python (after learning the language).</p>

<p>Do you actually want to be a programmer or do you want to do the things you said you were learning about (e-entrepreneurship, javascript, etc.)?</p>

<p>The latter sounds more like a CIS major than a CS major.</p>

<p>Codeacademy.com is a new worldwide nonprofit initiative. I became aware of the program when Mayor of NYC Mike Bloomberg stated he was going to learn programming using them. That’s the same tech billionaire Michael Bloomberg who founded Bloomberg Media, the financial reporting icon.</p>

<p>That’s a shame. I really liked codeacademy.</p>

<p>Codeacademy is not for someone who wants to be a CS major and wants to be a professional software engineer, in my entirely personal opinion (having only browsed through the site).</p>

<p>It’s for someone who wants to dabble in some programming, maybe learn it as a skill on the side - just another skill like knowing Excel macros or how to use Stata, maybe a high schooler who wants to be exposed to some programming before college, maybe someone who works on visual design for web pages who wants to learn some web programming, etc.</p>

<p>

That would be a CS major. If you want to work for an IT dept. of a corporation, get a CIS major.</p>

<p>At my school, there are two ways to major in comp sci: one is to be in the engineering school (which I’m not) and follow a full blown engineering curriculum. The other is to be in the college of arts and sciences (which I am) and to just get a BS in comp sci by taking 12 comp sci courses + some additional math, but it wouldn’t be an engineering degree. I don’t think the comp sci material itself is that much different; the engineering curriculum just requires a lot more other science and math courses. </p>

<p>I never thought of myself as an engineer, and even now, I’m thinking of double majoring in comp sci and econ (doable?) because I don’t think I would ever consider <em>just</em> studying comp sci (probably not a conducive mindset, but it’s the reality). </p>

<p>I’m interested in comp sci. I want to develop cool stuff. I want to be in the start-up world and do entrepreneurial stuff. But quite honestly, I’m scared of all this “theoretical” stuff.</p>

<p>You don’t need to major in economics to know enough economics for business you know…</p>

<p>It’s perfectly fine to not go the engineering route with CS.</p>

<p>

This. Truth. An introductory micro and maybe a macro class are going to teach you all the theoretical economics that you will ever need to know for business (and even then it’s only marginally useful, no pun intended). That’s one class, maybe two.</p>

<p>You do realize that no amount of classes are going to teach you how to run a business… you need to start a business to learn that.</p>

<p>The key, in my wholly uninformed opinion, to being a good business-person is having broad interests and an open mind, rather than being a super-expert in a narrow field.
Why? Look at a lot of the popular tech startups nowadays - Facebook, Linkedin, Pinterest, etc. It isn’t all that objectively difficult to code a functional clone of these sites/apps, at least when compared to something like an operating system or a desktop application like Word; a group of average top 20 (for CS) graduates could probably do it in 3 months. Yet your average top 20 CS grad does not achieve success on that sort of scale - the difference lies in the “idea.”</p>

<p>

</p>

<p>I didn’t end up doing it but the CIS program I was looking to was heavy on programming languages (c, c++, java, javascript) and focused a lot on web app development.</p>

<p>It was a striking contrast to the IS and MIS degrees which were almost entirely IT/networking related. All they had in common was sharing the same lower division business classes.</p>

<p>That’s one of the reasons I didn’t do it though. If we as students have to navigate course descriptions for hours just to find out what a major is, then employers are even less likely to know. Some of the “IS” degrees need to be renamed.</p>

<p>If you really want a formal business education, a business minor isn’t all that bad of an idea. You’ll learn the important basics: economics(pretty useless IMO, but fundamental), accounting, finance, and management. Not something you can put on your resume, but a decent set of skills to have. Plus you can learn from fellow students in the business program; some of them are bound to have inspirational ideas.
Of course, that doesn’t replace experience at all. You would indeed be well-served to follow the tech world and see what makes them work.</p>