College student, don't know how to become a real programmer

Hello everyone,

I’m currently a 19-year old college junior in northern New Jersey whom some people consider to be a programmer. Except I’m nowhere near being able to call myself a programmer. I’m self-taught and I’ve been writing code for many years, but I feel like I know nothing.

I had this realization when I started with web application development 2ish years ago. Beforehand, I worked on developing software, which pretty much only involves writing code. Writing code is what I’m good at, and it was extremely enjoyable. I’d spend entire days programming, and I was (or at least I thought I was) a happy man.

Since then, my interests shifted to web application development, and I was no longer a happy man. Ever since I made the transition, my interest in programming has taken a sharp turn, and began to decline gradually. I always feel like I know nothing and should quit, and this sentiment really discourages me from going any further. I started working on a web application 2 years ago, with an idea that I really liked, but while developing it, I kept learning about things that I didn’t know about before (i.e. API’s, specific HTTP headers, caching, security, etc.) and had to completely start from scratch so many times to the point where I just got rid of everything altogether. This is the problem with web application development - there’s so much more to it than just writing code and clicking “Debug.” You need to know the fundamentals of web applications, which I don’t, and have no clue where I can learn (and I’m not learning anything useful in college relating to that).

And this isn’t just web applications; I found that I don’t know much of the inner-workings of programming languages and other fundamental concepts. For example, if you start talking about the stack and the heap, you would probably lose me very quickly.

This past month I’ve been on vacation and I haven’t done any programming. I tried reading books but they all teach how to write code rather than become a programmer. They don’t have anything about all the “fundamentals.” I’ve been very depressed and stressed out, and I’m even more stressed out thinking that I have 2 more months of vacation and I will continue not learning anything. Better yet, I have 2 more years until I graduate, and I really want to work on my own projects while I can.

This depression I’m feeling from a lack of knowledge/expertise in the one thing I had passion for is really holding me back. I have no willpower to do anything nowadays, and I always lament how all this time I’ve only been a good Googler rather than a good programmer. In fact, I am not a programmer at all. I really hope someone can help me out to become a “real programmer.” I think it will make me feel a little better about myself, and it will definitely get me up on my feet again.

I’d like to thank you in advance for reading all of this; I really appreciate it. I came to this forum because I assume you guys are depressed as I am, perhaps for similar reasons. Though I’m sure that since many of you are professional programmers, maybe you can help me in my case out. Anything is useful: tips, encouragement, books, etc.

-collegedev

If you want to know how the machine works and what is going on in the background, my suggestion is to pick up a book or two on x86 assembly. You don’t have to master assembly, but if you just read the material and have a play around, your going to hopefully come away with a better understanding of what’s going on. I’ve been on an Assembly binge lately and I’m having an absolute blast, not to mention I feel like I’ve grown as a developer.

If your still interested in web development, I think you should revisit the project you’ve mentioned in your post. I think you should consider a change of tact however: get the project down on paper and list all the parts you have no idea how to implement, then just go through the list one-by-one until you feel competent enough to implement that particular item into your project. It sounds like your biting off more than you can chew with that particular project but if your break it down and do it piece by piece you may have an easier go of it. I do this all the time, it’s how I learn. Your mileage may vary.

I really wouldn’t worry about undertaking a project and not knowing how to implement something; frankly, that’s normal and it’s all part of the learning process, particularly when your young (and I don’t say that to offend). My last job involved Lua scripting and for the first few months I just about lived on Google. I got the job done and that’s all that mattered.

Yeah, I was thinking the other day that all the books I’ve read that are aimed at beginners never seem to touch software design which is equally important to knowing how to write code. A lot of C books are pretty piss poor at explaining how pointers work, too.

EDIT: if you go down the assembly route and find yourself hopelessly lost, give me a yell and I’ll do my best to help.

1 Like

Thank you for your response, I truly appreciate it. In college I learned ARM assembly but we pretty much stuck to only programming in assembly, and didn’t go too much in depth on what actually goes on deep down. A book that teaches assembly properly should definitely help.

The problem with the web app is not so much that I don’t know how to implement stuff, it’s rather that I don’t know what I need to implement. Cluster/instances, load balancing, etc. - Where do I learn all of this stuff? And this goes for software development concepts as well.

I also think you implicitly helped me even more by bringing up “software design.” I guess that’s another thing I’m looking for - to learn about software design and architecture. I’ll get more books but I still feel like there’s so much I don’t know that I should know when I enter the workforce in 2 years.