TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Ask HN: With no CS degree, what was most frustrating about learning how to code?

11 pointsby lpnotesalmost 11 years ago
1) For those of you without CS degrees, what do you (or did you) find most frustrating about learning how to code?<p>2) What resources (e.g. mentors, websites, coding classes or bootcamps, youtube videos, books, co-workers) did you find MOST helpful in accelerating your learning?&lt;p&gt;For example, if it was a combination of factors that led you to have the skills you have today, what could you have not done without?

19 comments

cwbrandsmaalmost 11 years ago
1) when I was learning...as a 10 year old in 1985...lack of available learning materials and no one to ask questions. I got a magazine once a month, no one I knew could program. And the only language I had at my disposal was GW-Basic. Now: there are probably too many available resources. I&#x27;m teaching my kids and the amount of materials is staggering.<p>2) Just sitting down at the computer and struggling with it -- not looking for the easy way out, figuring out things myself. Teaching only gets you one step of the way, after that it is all you. I would spend hours ready every book I could and writing small programs.<p>2) Second part was programming as part of a team and doing code reviews. That will shape you up like nothing else. But you can&#x27;t do this step if you don&#x27;t do the other part (writing lots of code on your own).
评论 #7957010 未加载
ForHackernewsalmost 11 years ago
I don&#x27;t have a CS degree. When I was first learning to code, but also even today: The most frustrating things are all the bullshit that goes along with writing code but isn&#x27;t actually writing code...<p>* Setting up environments and auxiliary tools: Should I use rvm or rbenv? What&#x27;s bundler? Why do I need a rake? Where&#x27;s my Gemfile? Ooops, I meant my Gemfile.lock.<p>* Understanding the sysadmin&#x2F;architecture things: So I need an HTTP server and an app server? Wait, but some app servers are HTTP servers? But you need a proxy for static content? And a load balancer? (To be fair, in the modern world these tasks are vastly simplified by services like Heroku)<p>* Databases: Choosing a DB, choosing a library to connect to the DB, do you use an ORM or write SQL? Nowadays, I follow the &quot;Always use Postgres unless you have a damn good reason&quot; rule.<p>* Testing. Writing unit tests is incredibly tedious. Learning how to mock&#x2F;stub&#x2F;fake out critical libraries is a giant pain that I still commonly goof up today. Writing good tests easily takes 2-3X the amount of time it takes me to write working code.<p>* Deploying. Ugh.
hemaljshahalmost 11 years ago
The most frustrating thing to code IMO is going through the tutorials, accomplishing them and then saying &quot;now what?&quot; It&#x27;s easy to follow along things like CodeAcademy or LearnRails or any other site that teaches you the basics of getting started, but after that, where do you go? You no longer have the structure of a classroom that gives you the next project where you can build or challenge your skills...while not setting you up to fail and become discouraged.<p>I highly recommend finding a project you&#x27;re actually passionate to work on after you are done with your tutorials. If you&#x27;re passionate about it, you&#x27;re going to push through the frustrating parts that feel like you&#x27;re not prepared or don&#x27;t have the experience.<p>Use co-workers, forums, communities like StackOverflow and use them aggressively. Become rigorous at searching Google to find the answers first and give it a few tries, but don&#x27;t be ashamed when you hit the wall. For me, the only way things will stick is by practicing them and trying to take them to the next level!
coralreefalmost 11 years ago
I tried to learn programming a few times on my own. Once as a young teenager with Visual Basic, then with Java ~6 years ago, and finally Objective-C. Looking back, the biggest impediment was learning about programming, and not actually doing programming. Great - I know what a for loop is, now what? My VB and Java environments sucked. There was nothing I could immediately create and get to practicing.<p>I had much more success learning XCode and C&#x2F;Obj-C. I read some lessons on C, then switched to Objective-C by following the Stanford video course on iTunes which showed you programming + hooking up XCode interface objects to run your methods (I realize I could have done that with Visual Basic originally, but at the time I couldn&#x27;t think of anything I wanted to build in VB). Then I followed tutorials on raywenderlich.com and continued from there.<p>If I needed help, I Googled, posted on StackOverflow or asked my one programming friend.
eshvkalmost 11 years ago
I don&#x27;t have a C.S. degree. I had an Electrical Engineering degree which meant that I knew how to think logically and construct scripts of things. This means that I knew fuck all about data structures or modularization of code. However, I really really learnt how to build complex systems by studying more mathematics. Specifically pure math. It trains your mind to think in terms of raw abstractions in a way that hardens you and makes programming easy. It also helped that I took real analysis the same semester as I took Operating Systems. The brain has a small working memory set. The only way to deal with complicated systems is to learn to recognize the forest and not get lost amidst the trees. Even now, when I interview people or get interviewed, Ultimately I don&#x27;t really care what tools you know, what languages you use. Sure, it is great that you know the stack that this company, this team uses. But ultimately, what matters to me and the work I do is how fast you can break down a problem and see the underlying simple backbone. These are the kind of people I like working with.
rubiquityalmost 11 years ago
1) I would say the amount of options of programming languages and types of development there are out there.<p>2) No resources in particular stand out to me, though I think books were way more useful early on than blog posts or tutorials. I think it&#x27;s the linear nature of books that really helped me.<p>My advice would be to pick one medium (web, iOS, Android, whatever) and one language (for me that was Ruby) and stick to that language only for at least a year.<p>Other advice would be to always be inquisitive. Though I didn&#x27;t get a degree, I eventually went on to learn about operating systems, sockets, basic algorithms and data structures.<p>However, in my opinion getting a CS degree would be frustrating if I were to do it all over again. Learning all that implementation detail and a lot of schools not even pushing or requiring you to build things would really frustrate me.
delluminatusalmost 11 years ago
I do have a CS degree, but I first learned to code in high school. I was taught by a friend of mine who already had pretty significant programming chops even at 16. I think his father invented YAML. We did our programming on PCs that we built in the classroom and installed Ubuntu on.<p>Anyway, I remember the hardest part for me was wrapping my mind around Ruby blocks. It sounds kind of dumb but honestly I couldn&#x27;t understand them for weeks. The first programs I wrote were those text-based adventure games, like, &quot;You&#x27;re on a path in a forest. What do you do? &gt; Go left&quot;. I did those because you didn&#x27;t need to ever use blocks for them, it was all just conditional logic.<p>Once I grokked Ruby blocks I feel like it has all been downhill from there, at least until I stated looking at Haskell...
Someone1234almost 11 years ago
I didn&#x27;t learn anything useful from my CS degree. Literally nothing. Even things like compiler design and operating system concepts were more basic than I had already studied. However if you go into a purely academic area, like AI, it might be useful to you (particularly the high level maths).<p>As far as resources: Really depends on the topic.<p>You can watch lectures for an entire CS degree for free online via places like UC Berkeley. There are also paid video stuff at places like Pluralsight (coding), CBTNuggets (server management), and as you said even YouTube has the good video now and again.<p>I just google whatever I need as I need it. It isn&#x27;t a very formal way of learning but it is an effective one. The only trick is not to skip doing things because you don&#x27;t already know how to do them.
hackNightlyalmost 11 years ago
No CS degree here, currently working as Senior Front-end developer after 5+ years in the field.<p>1) I found it most frustrating to try and choose between learning what&#x27;s the most popular new technology and what would help me advance my career. It turns out, focusing on mastering the basics of HTML, CSS, and Javascript have gotten me much further than trying to jump on every new bandwagon that rolls by.<p>2) Honestly, the single greatest resource has been my side projects. All of the tutorials, training and learning from Google have been far surpassed by the amount of knowledge I&#x27;ve gained from sitting down and hacking on ideas. I seriously have had 1million side projects in my 5 years and each of them has been a challenge and an amazing learning experience.<p>Hope that helps
评论 #7956332 未加载
J_Darnleyalmost 11 years ago
1 - Choosing a data and function structure for whatever problem you&#x27;re facing, and then implementing it. I ended up being inspired by libavfilter for what I&#x27;m working on now.<p>1 - Other computer science &quot;things&quot; that I presume you get taught. The ideas and concepts behind common algorithms. Sorting, searching, path finding, some other things I vaguely remember from my &quot;decision maths&quot; course at school.<p>1 - Setting up my environment. It is much easier with now with newer versions of cygwin and mingw64.<p>1 - Autotools.<p>2 - If you&#x27;re looking for just one stand-out resource: the existing code you want to work with. Beyond the basic &quot;hello world&quot; examples I don&#x27;t find writing something from scratch to be that beneficial to learning.
glendaalmost 11 years ago
One thing I try to do is read everything that is considered well written or canonical in some way.<p>These types of resources tend to be informative, easy to grasp and often inspiring. They are things like books&#x2F;textbooks, blog posts, tutorials(most tutorials suck though). They will usually reference other (even more canonical) resources so you shouldn&#x27;t really have problems finding new stuff to read. You can pick and choose based on what sounds interesting and repeat.<p>This has been extremely efficient for me, and I have learned a lot pretty quickly.
jobquestion123almost 11 years ago
1) Real world examples of algorithms. I really wanted to get into algorithms and data structures, but it was always hard to find an actual reason for things.<p>2) More than anything, contributing to open source projects taught me how to code, how to read and edit existing code, and how to collaborate with other developers. In terms of early stages, Learn Python the Hard Way was huge, because it introduced me to all the OTHER online resources (like Stack Overflow) that were available. I also found some of the Udacity videos helpful.
john0almost 11 years ago
1) The most frustrating thing about learning how to code for me was getting my IDE or environment set up to work with whatever tutorial or book I was working from. Figuring out what the cryptic compiler errors meant was sometimes insanely difficult.<p>2) Some of the more helpful things for me were the Head First series of books from O&#x27;Reilly (Java and C# in particular), and having a few experienced programmers in real life to talk to. The one thing I seriously could not have done without, no question, is Google.
thinkereralmost 11 years ago
1) Everything. Even simple things like pushing codes to repositories took me eons to pick up. Also, programming isnt hard, in fact its easy. The hard part is understanding how to link up everything, front to back and to others such as codetesting, for example with Rspec.<p>2) I felt sites that promote start-to-end lessons step by step are great. Like codelearn.org. Videos and all are good too but they often target experienced people, so its much more painful to use those.
josephschmoealmost 11 years ago
Spaghetti&#x2F;fat code is probably the biggest problem for new programmers - though they&#x27;re probably not aware of it. It&#x27;s very, very hard to make any module larger than ~500 lines without overcoming it.<p>This was a huge issue for me for probably about two years.<p>Then, I took a look at my projects using a dependency visualization tool (Structure101 for Java&#x2F;C#) and I got a lot better as I fixed all of the tangled code&#x2F;fat classes.
aosmithalmost 11 years ago
I&#x27;ve got a little experience with both. I taught myself to program in the early days of the internet (well not that early, but 28.8 no less). I also was a CS student for a couple quarters before dropping out.<p>On the whole I think it&#x27;s gotten a lot easier. I remember spending days on forums trying to solve little problems.<p>Either way the best way to learn is by doing.
tn13almost 11 years ago
You dont need a CS degree or even any degree for that matter to learn to code. What you need however is a good skill with basic mathematics and logic.<p>During my childhood finding a computer was the most frustrating part. I instead wrote programs on a fucking notebook.
pigDisgustingalmost 11 years ago
Dependency Hell.<p>And oh yeah, Make. I fucking hate Make. Not as much as I hate pay-to-play ecosystems like Microsoft Visual Studio, but yeah, fuck Make.
danvoellalmost 11 years ago
1) Setting up a development environment and understanding how and why it worked.<p>2) Co-Founders were my mentors