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: Who here learned to program for the first time in grad school?

10 pointsby optbuildabout 2 years ago
How did you learn it? What was the experience like? Did you take a course in the same uni? What language did you learn? Or did you directly start implementing projects and then later learnt to code in a clean systematic way?<p>Did you later dig deeper into more CS topics?

4 comments

p1eskabout 2 years ago
I did. My undergrad didn&#x27;t involve any coding, so when I decided to study AI, and enrolled into a Computer Engineering PhD program, I took an undergrad computer architecture course, where I learned basics of MIPS assembly, while in parallel taking a beginner C course. C maps very well to assembly, so things made sense. Oh, I forgot to mention - before I enrolled in grad school I read the book &quot;Code&quot; by Charles Petzold. Highly recommended. It really helped me see how everything fits together. After a second C course, I dived into machine learning, and switched to Python (which I learned on my own, from the official tutorial). Later on I took a few more advanced CS courses (algorithms, parallel programming, network programming, etc). But I only learned good SWE practices when I started working with others in startups: OOP and code reuse, clean and consistent API design, naming, comments, TDD, git, reviewing and submitting PRs, etc.
sethammonsabout 2 years ago
Not grad school, but my first programming experience was as a freshman at my university. I took CS101 which was C++. The course covered basic programming (control structures, basic data types, functions, etc). Also covered memory pointers and the ideas behind them. The next class would be data structures, but before that, I got a job.<p>My buddy who encouraged me to take the programming class (thought I&#x27;d be good at it since I was a bit of a math geek) then hired me after said-first-programming-class at his start up. I made a bit above minimum wage to learn PHP and build a business to business directory website with him working evenings, sometimes til 1 or 2am. No unit tests. No build system. Nothing like that. FTP files up, manually check the site.<p>I only minored in CS (major was BS. Business Administration), so I took a few more classes (got exposed to Java, some Action Script, some more C++, some assembly), had a few class projects, but, meanwhile, worked at that start up slinging PHP til they closed down. I got less than a year of experience if I recall, but I then tinkered with PHP+MySQL and HTML+CSS+JS for several years while doing other things (I would help a small business here or there, or work on personal projects, very rough CMS solutions, etc, all for fun and barely earning anything). After being an insurance sales agent, a financial advisor, a construction worker, and an inner-city high school math teacher, I decided to give this whole tech thing a go. Worked with a recruiter, highlighted some projects (nearly all php+mysql+html+css+js) on my resume, and, after half a dozen interviews, landed a job at a start up that would later become a unicorn.<p>Fast forward a bit over a decade and I&#x27;m a principal software engineer working on high scale systems.
评论 #34927374 未加载
nieto915about 2 years ago
I did. I had a brief stint in college and irked by with a C then reasonable grades in a non-CS&#x2F;Engineering major. I took a 10 year hiatus from school while dabbling in all sorts of crappy work and corporate shilling. I finally said enough after having a daughter and decided to climb that mountain. Lets just say my life has improved. Excelsior!
评论 #34921185 未加载
mitchellpktabout 2 years ago
Grad school was the first time I had to get under the hood with numeric simulation code.<p>Experience: It was a bit of a learning curve, but a manageable one. I think maybe 80% of my energy went into improving my domain expertise (physical chemistry) and 20% went into learning enough coding &amp; scripting to execute the research.<p>How &#x2F; Courses: Never took any coding classes myself, but in retrospect I think it would have helped me move quicker if I&#x27;d at least taken an online course to brush up on the basics. I&#x27;d try to solve problems on my own for an hour or two, and ask somebody if I got stuck for too long. I think the main drawback here is that I was able to break through any given concrete problem (why is this code throwing an exception? why is this array all NaNs? why is time negative?) but never learned big picture patterns for writing reliable, extensible, and reusable codebases. I probably could have moved quicker if I&#x27;d started learning &amp; thinking about that sooner.<p>Languages: If you can, use open source languages (e.g. python) where possible. One of my biggest regrets is that I did 100% my thesis work in MATLAB, which requires an annual software license that was paid for by my university. Now that I&#x27;ve graduated, I can&#x27;t run or work on my own research, even though my code is not proprietary. (You may not have a choice in some cases, e.g. one of the key models in my field was implemented it MATLAB, but I could have done some of the other work in python).<p>Later digging: I&#x27;ve picked up more software engineering and computer science skills since grad school, but that&#x27;s because there is more emphasis on performance and code hygiene in industry. For my grad school research, it was VERY important that the code produced the right numeric results, but nobody cared if it was fast or pretty.<p>Things it would have been helpful to learn earlier: version control (how to use GitHub and atomic commits to never lose work), writing tests for core functions that might fail in non-obvious ways, clean handling of parameter &amp; configurations, etc. Oh, and comments! During an REU I spent an entire summer writing spaghetti Perl code with no notes; a year later the professor asked me to re-run something, and I had to spend a week reverse engineering my own work.