Similarly, I did not graduate with a CS degree, have been programming since 5th grade and yet feel I cannot program 'professionally' for a big firm that is loaded with CS geeks while I'm just an amateur programming for 13 years. In this case, a lot of it is what you tell your brain.
Just study the following: - Understand time & space complexity - Security & Encryption - Concurrency & why ACID transactions are hard That will save you from most of the most embarrassing and costly mistakes of programmers without a formal education. I've actually worked at a company that wasted millions on a fruitless project because management didn't understand basic automata theory: - Finite State Machines / Regul…
I'm graduating with a CS degree but I don't feel like I know how to program
11–20 of 135 posts
Re: I'm graduating with a CS degree but I don't feel like I know how to program
#12Similarly, I did not graduate with a CS degree, have been programming since 5th grade and yet feel I cannot program 'professionally' for a big firm that is loaded with CS geeks while I'm just an amateur programming for 13 years. In this case, a lot of it is what you tell your brain.
Most hiring is based on the idea that it is far worse to employ a bad candidate than reject a good one - which favors an approach of choosing fairly arbitrary filters to whittle down the mountain of applications that any decent job has these days to a manageable quantity. Requiring a degree is popular as it is an easy to implement filter rather than any correlation with ability. (Note that question of whether a CS de…
There are a few tidbits from your education that will save you from serious egg on your face. (See my other post this thread.) This is not just theoretical. I've seen a company suffer major embarrassment because software sold to Fortune 500 companies was written by programmers who thought, "all that poppycock about race conditions/transactions is just academic hot air."
Re: I'm graduating with a CS degree but I don't feel like I know how to program
#13Similarly, I did not graduate with a CS degree, have been programming since 5th grade and yet feel I cannot program 'professionally' for a big firm that is loaded with CS geeks while I'm just an amateur programming for 13 years. In this case, a lot of it is what you tell your brain.
Just study the following: - Understand time & space complexity - Security & Encryption - Concurrency & why ACID transactions are hard That will save you from most of the most embarrassing and costly mistakes of programmers without a formal education. I've actually worked at a company that wasted millions on a fruitless project because management didn't understand basic automata theory: - Finite State Machines / Regul…
management didn't understand basic automata theory
Do tell more about it; as I feel that's not why they wasted millions.IMHO management isn't required to understand much about CS, as long as the relationship with the developers is as between a customer and an engineer (i.e. customer asks for stuff, engineer explains what he can and cannot do).
Most problems with management comes from a disconnect with reality. Even when they know CS theory and/or could understand the complexity involved (ex developers); having bikeshed-style opinions and making demands with an iron fist in spite of developers advising otherwise (or the reverse, having developers on the team without an engineering mindset that can't think for themselves) ... that's the real poison.
Re: I'm graduating with a CS degree but I don't feel like I know how to program
#14Push: You learn from books, classes, mentors, and studying examples, then apply what you have learned.
Pull: You have a problem that you must solve, then you learn what you need, any way you can, to build the solution.
I suppose there are pros and cons of each method, and I imagine that many people here have used some of both.
For the record, I am 100% Pull. I have absolutely no formal training. It took me 2 years to find my first job and then I was thrown into the deep end. It was simultaneously frustrating and exhilarating. There were so many times I didn't know what to do or didn't have enough "tools" in my box. So I had to figure it out and find sources of learning. But I always did. Any when I got that first thing working and then saw my customer's eyes light up, I was hooked.
Your CS degree may make you think that you're a "push" learner, but may I suggest that you adopt a "pull" approach. Forget what you think you know and find a job or a project or someone who has a real need. Then build what you need. You a several advantages over me: (a) It shouldn't take you long to find that job/demand/customer. Just keep looking. (b) You already have tools in your tool box, maybe not the right ones for the job, but you have something. And (c) It's easier than ever to adopt a "pull" approach. Help is everywhere.
You may feel frustrated, but I don't think you have a problem at all. You're in a great (and very normal) situation. Just adjust you attitude, find something to build, and do it.
Re: I'm graduating with a CS degree but I don't feel like I know how to program
#15Earlier quoted context omitted.
Most hiring is based on the idea that it is far worse to employ a bad candidate than reject a good one - which favors an approach of choosing fairly arbitrary filters to whittle down the mountain of applications that any decent job has these days to a manageable quantity. Requiring a degree is popular as it is an easy to implement filter rather than any correlation with ability. (Note that question of whether a CS de…
I'm a CS graduate and I think the maths & theory heavy course I did is irrelevant to 98% of development jobs even if it has been pretty useful for me There are a few tidbits from your education that will save you from serious egg on your face. (See my other post this thread.) This is not just theoretical. I've seen a company suffer major embarrassment because software sold to Fortune 500 companies was written by prog…
IMHO Computer Science courses deliver value through proving a knowledge of abstractions of software and hardware systems. These formal abstractions remain applicable pretty much forever whereas knowledge of particular technologies are of passing value.
[NB My hardwired knowledge of vi commands, Unix system calls and C was merely pleasant side effects of my CS degree not an end in itself]
Re: I'm graduating with a CS degree but I don't feel like I know how to program
#16Re: I'm graduating with a CS degree but I don't feel like I know how to program
#17- One semester-long software development class, where the teacher did literally nothing while we formed small teams and worked on a project for a real client in or near our university
- Software engineering internship in the industry
- Extremely hard-ass Advanced Placement C.S. teacher in high-school
I learned a lot of cool theoretical stuff in college that is definitely good to know: functional programming, operating systems, machine learning techniques, compilers, graph algorithms, etc., but was never taught any core programming techniques or required to write very extensive code at any level of quality. It's all about real-world experience, if that's what you're shooting for.
Re: I'm graduating with a CS degree but I don't feel like I know how to program
#18Earlier quoted context omitted.
Just study the following: - Understand time & space complexity - Security & Encryption - Concurrency & why ACID transactions are hard That will save you from most of the most embarrassing and costly mistakes of programmers without a formal education. I've actually worked at a company that wasted millions on a fruitless project because management didn't understand basic automata theory: - Finite State Machines / Regul…
Do you have any preferred links or book titles?
Algorithms: Introduction to Algorithms (Cormen, Leiserson, & Rivest) http://amzn.com/0262033844
Security: Applied Cryptography (Schneier) http://amzn.com/0471117099
I cannot find my automata book just now. It's down in the garage, and I want to stay inside where it is warm now. As for concurrency, I got part of that from the Tannenbaum OS book:
But the rest, I actually got from a coworker on the job! We did cover databases and ACID transactions in school, but that wasn't taught very well and I didn't really get it until I was doing real work.
Do some assembly language. It will give you a key advantage over everyone who is too scared to touch it.
Write a compiler and/or interpreter. This can actually be pretty small, and it will also give you an advantage over those too scared of something so seemingly "esoteric."
Re: I'm graduating with a CS degree but I don't feel like I know how to program
#19You can't expect college to teach you how to program. It's more experience and try-and-fail than anything else. The college will teach you the basic, it will give you a ground to know how to start building. They won't tell you how to put the bricks together.
That is how it is right now, but run into a brick wall until you conquer it isn't the best approach. Guided practice would be much better. For that to happen though we need to get better at being able to describe what we learned by running into that brick wall.
That's why I help my co-workes with something they don't know and encourage them to do the same with others.
Re: I'm graduating with a CS degree but I don't feel like I know how to program
#20Earlier quoted context omitted.
Just study the following: - Understand time & space complexity - Security & Encryption - Concurrency & why ACID transactions are hard That will save you from most of the most embarrassing and costly mistakes of programmers without a formal education. I've actually worked at a company that wasted millions on a fruitless project because management didn't understand basic automata theory: - Finite State Machines / Regul…
management didn't understand basic automata theory Do tell more about it; as I feel that's not why they wasted millions. IMHO management isn't required to understand much about CS, as long as the relationship with the developers is as between a customer and an engineer (i.e. customer asks for stuff, engineer explains what he can and cannot do). Most problems with management comes from a disconnect with reality. Even…
management didn't understand basic automata theory
Do tell more about it; as I feel that's not why they wasted millions.That company tried to translate code from one programming language to another using only regular expressions. (This was a long time ago when you couldn't almost count on most "regular expression" implementations being Turing Complete.)
Perhaps the problem was really that engineers who understood the futility of the approach didn't speak up or weren't listened to. Still, I'd expect people managing an engineering firm that builds bridges to have some basic grasp of physics. So I don't think it's going too far to have those running a software company to have some basic grasp of the basic laws governing their field.