5 ms·
As a self-taught programmer myself, I confess this is exactly how I would frame the question. I'm constantly worried there's something crucial to which I'm obli
by danilocampos 16y ago
As a self-taught programmer myself, I confess this is exactly how I would frame the question. I'm constantly worried there's something crucial to which I'm oblivious.
- markkanof 16y agoSo then the logical answer is that self taught programmers lack the confidence to realize that they are just as good as formally educated programmers. :)
- Xurinos 16y agoAnd I wonder if often better. There is value to having the motivation to learn something before being formally trained in it. I was not too impressed with some of my peers in CS, especially those who could not figure out how to open a file in C in their senior year. I was self-taught, then formally trained, and since self-taught. I would have to say that both have value and that you are missing something without the formal education. "Confidence" is a good reason, but exposure is important, too. I am sometimes surprised when the college math pops up in my work, spanning anywhere from programming drivers PCI cards to web interfaces. Work with a large enough dataset, and maybe you will need to make use of a different sort from the language-included "quicksort" algorithms. I thought I could my way out of a paper sack before getting the CS degree. I ended up learning a few things, some trivial, some useful and connecting. You could probably pick it all up up in a couple decades, but four years is a nice jumpstart. Simultaneously, the learning of approaches and techniques does not end there. For example, I sometimes wish my university had made mention of MOP instead of presenting OOP only the C++, Java, and Ada way. I think there is a difference between people who can accomplish tasks and people who can accomplish those tasks in a way that they can be easily extended and maintained in the future; in one respect, we can call that experience, and in another, we can call that an exposure to enough approaches/patterns that it is easier to select the best for the job. Any jumpstart is a huge help and can aid in removing the bad habits learned from solo experimentation.
- CyberFonic 16y agoThe dangerous programmers are those who don't know what they don't know. You have moved on. Once you know that there are things that you don't know you can always pick up some key texts and fill in the gaps. MIT have some great CS videos online, you might want to check them out.
- statictype 16y agoI'm in the same boat and also worry about it to a certain extent. However, 7 years of getting paid to write software has mostly given me more confidence. Also, I know a lot of really smart people (a lot smarter than I) who studied Computer Science and couldn't program their way out of a paper bag.
- danilocampos 16y agoWhen I found out many "programmers" can't solve fizz buzz, I felt a lot better. Have you read anything that really knocked you on your ass in terms of practical usefulness?
- paulnelligan 16y agoI'm not 100% sure that fizz buzz is really the indicator that people make it out to be ... I mean, it doesn't really test software design skills, or the ability to design a complex system with loosely coupled objects.
- frobozz 16y agoFizz buzz is very simple. It's easy to communicate, implement and test, there's nothing fiddly about it. It's the entry level indicator and requires no prior knowledge, other than the ability to turn a simple, stable specification into software. If you can't do fizz buzz in your chosen language, then it's highly unlikely you can do anything more complicated. It doesn't test your ability to do any kind of high-level design. It just tests whether you can program at all. The ability to do high-level design is only important in one of these two situations: 1) The position you are hiring for only involves doing high-level design and not doing any programming. or 2) The position does involve programming, and the person you are hiring is a competent enough programmer to do fizz buzz.
- arethuza 16y agoThe capability to complete fizz buzz is necessary but not sufficient.
- mkramlich 16y agoSo do something about it. Between the Internet and possibly some nearby university (where you could sneak in and find out exactly what books all their classes require of the CS students), you'll have access to 99% of the same relevant things you'll need to "come up to par" with the so-called college trained programmer. Wikipedia beckons. Amazon (both as bookstore and cloud hosting provider) beckons. Your terminal beckons. Etc.
- jberryman 16y agoComputer science and programming are such vast fields I think everyone must be oblivious to things that others find crucial.