i've always felt my weakness was that i never learned a programming language. i remember hearing co-workers at my first job talk about how programming was something that can cheaply and easily be outsourced to places like india, and learning to program would corner you into being a lowly technical individual contributor. experience, making decisions, and managing were the 'real' jobs and skills to have. with those that's how you'd get the big bucks, not by being a code monkey.
i took what they said at face value, not reading in between the lines of their advice. i was just out of college, i didn't know better. but now i see that these people telling me that coding is a waste of time, were rationalizing to me why they will never learn to code. most of them started their professional career when most desks didn't have computers, only pencil and paper. most of them used right click to copy and paste vs cntrl+c and cntrl+v. come to think of it, they didn't know any keyboard shortcuts.
but i heard the advice i wanted to hear. in college i took c++, and barely passed. i even had a weekly tutor session still i barely squeaked by. i thought that maybe programming is too tough for my simple brain to understand? and so these older co-workers who were also unable to program were telling me not to learn it, not to waste my time was just what i wanted to hear.
now i find myself in san francisco, during a huge tech boom. rents are up, prices are up, new companies are hiring like crazy, south bay companies are providing free wifi enabled charter busses to city residents who work down south. and almost all of these people are fluent in more than one programming language.
to think, the generation before me shed some bad advice. typical.
fast forward to right now. i find myself building excel formulas that use other formulas which take hours to compute. i think to myself, if excel was a programming language, i would have just written a pretty decent program. and that's when my fear lay down and i enrolled in a sql class.
sql - structured query language, is not so much about writing 'programs' as it is writing queries that pull and manipulate data from a database. usually you write a few queries in sql, and then write a program that knows when to use the sql queries to get the data that you want.
i took the class online during summer session, through the local community college. taking an online class was a brand new experience for me. each week i had two lectures to read, and two homework assignments to complete and upload. summer session is compressed, a normal semester only has one lecture per week and one homework per week. needless to say this was a very intense seven weeks. i stayed home on weekends, brought my laptop when i went to my parent's place, and even went back home after a few drinks to complete homework by the due date.
but i loved it. i was learning something that was directly applicable to my current job. half way through the course i was writing sql statements and pulling data faster and better than ever. of the possible 500 points for homework assignments, i received 478.
the final exam was the only portion of the class that we had to go to campus for. we sat in a dark underground classroom for 2 hours, and wrote our sql statements with pencil and paper. i never practiced coding with pencil and paper, though the teacher did advise this. there was one problem where i had to erase about 7 lines of code in order to insert a row that i had forgotten. there's no copy, paste, indent, or insert with pencil and paper. i bombed it, getting only 250 points out of the 400 possible. this resulted in me getting a b in the class.
don't get me wrong, i wanted to get an a. but i wanted to learn sql more.
it was frustrating when some of the lesser common aspects of sql were being taught. during some weeks the homework would ask us to write a query that pulls specific data, but to not use some of the built in features of sql. it's frustrating because no manager will ask me to pull some important data for our upcoming report but ask me not to use joins or like statements. it would be like asking a chef to not use knifes this week in the restaurant. but how else can you teach concepts that exist but aren't necessary? but maybe this i my way of rationalizing why i didn't get the a in the class. i've learned the lesson of rationalization and how to use it to make yourself feel good under the mask of advice that's for sure.
in all i walked out with a ton more than i walked in with. and today my next class starts. this class is 100% online, even the final. i'll be learning perl, and this is a 15 week course, not the condensed 7 week course that the sql class was.