15
21 Comments

How did you learn to code?

How was your journey from scratch to the construction of the software that you sell? (If this is your case.)

Did you learn a language and then a framework? Have you looked at similar software codes? Did you learn with a specific course? A bootcamp? In college?

What is your story with programming? Let us know! :)

  1. 10

    I dabbled as a kid, learning QBASIC in middle school and a little bit of Flash, which taught me the basic programming concepts of variables, if-then statements, loops, functions, etc. I also wrote a ton of HTML and CSS, probably 1000x more than any "real" programming I did. I made dozens and dozens of crappy websites.

    It's rarely discussed, but it's worth noting that I spent a lot of time on the computer in general. Having great computer skills is so helpful for learning to code, because you'll just get frustrated less often trying to type, navigate your hard drive, install things, troubleshoot, search the web, get comfortable with new UIs, learn keyboard shortcuts, etc. I've tried to teach some people to learn to code who are easily 10x slower than I am at simply handling their computer, and it's a big challenge until they become more comfortable.

    In college I had a project I wanted to make — an app for Facebook's platform. I had no idea what it'd take to make the app, no idea how to get started. A friend found the documentation and explained to me that I'd need to learn PHP. That seemed like a tractable first step, so I Googled around for guides and started learning, and to my surprise it wasn't hard. In part because I'd dabbled with code as a kid, because I'd built websites and had a basic understanding of deploying websites, and an advanced understanding of HTML and CSS.

    I eventually got stuck on something I wanted to do and had to learn about session management. Then I got stuck on another feature I wanted to build and had to learn about the existence of databases and SQL. Then I got stuck on another feature and had to really go in-depth learning parts of JavaScript, which weren't so different than PHP. Then I got stuck on another feature and had to learn about AJAX. Etc.

    This all took about 6 months while I was in school taking classes. I was probably coding an average of 4 hours a day. I highly recommend the project-driven approach and just-in-time learning of whatever concept you most need get the goal accomplished.

    1. 1

      Awesome story! From those projects, one day Indie Hackers come about?

    2. 1

      Totally agree with the project driven approach. No amount of school work/studying/courses has come close to what I learn when I have a goal to work towards.

      I do, however, think it's important to go back and dive a little deeper into what you pick up. For instance, I decided to try postgres for my latest project and have been fine with my minimal amount of db knowledge. However, I know it goes so much deeper than what I've touched working on the project.

    3. 1

      I’ve lived quite the same story on my side 😉👍

  2. 4

    I spent 4 years of computer engineering and learnt next to nothing...Learnt mostly building projects for myself

  3. 4

    I've learned my first programming language when I was 17 always thinking you should have a specific state of mind to be a programmer. My best advice would be to find a mentor or friend who would spend a little bit of time describing simple basics. How the internet works, how computer works etc, nothing really complicated and what's more important creating a learning plan.
    I was lucky and get my first internship job pretty quickly and I've just never stopped learning after that.

  4. 3

    I was fascinated by computers since when I was a kid. Messed with the computers in the computer rental shops (it's a thing here in the Philippines) by getting/creating free wifi access using their network, popping up some cmd messages on others' computers, etc.

    When I don't know about the thing that I want to work/tinker on, I'll search for it, learn it, and then do it.

    I still remember where I was in a Dota 2 betting game, I had this teammate who was studying Computer Science (I was still in high school at the time). I asked him about programming stuff, hoping that he can give me some pointers but I was wrong. He gave me an answer that I know was wrong. Then I realized that I shouldn't rely on others. There's the internet. I can just search and learn it. That's what I did.

    I'm now working for a startup company as a Software Engineer. Mostly working on managing the kubernetes clusters, creating internal apps/tools, etc. It's been 3 years now since I got the job (I was 18 when I got the it). It's not my first job though but it's my first office based job. I did some freelancing stuff when I was in high school, made some money on the side, treat my friends and bought my own laptop.

    I'm motivated and I think that's the reason why I'm here now.

    1. 1

      Awesome, Joshua! I really hope you can start your own business soon. :) By the way, take a look at this project from an IH guy: https://careermove.io.

  5. 2

    I came to web development from a very roundabout way :) In high school (in the Geocities days) I fell in love with the idea of building my own webpage, and taught myself HTML and basic CSS-- just enough to load animated gifs and fun images. I also set up a BBS with my sister, which was relatively successful in those days. Gotta love those ASCII games!

    But I never realized that making websites could be a job. I majored in photography in college, and did jobs unrelated to coding. However, at one point I got a job, off of Craigslist no less, in data entry. It was a contract job, but they ended up teaching me some programming, in Vb.NET, PostgreSQL, and Microsoft Access. I did a little bit of CSS for one project as well.

    I stayed there for 2 years, then was able to land an actual entry level web developer job at an agency. This job was what I consider my university education in web development. I learned a TON (it's amazing what having to meet fast deadlines will do to your ability to Google to find answers), struggled with impostor syndrome big time, and slowly over time built up my sklls and my confidence grew as well.

    I worked as a full-stack dev, learning the ropes in C#, more SQL, a bit of PHP and nginx server setup, and various CMSs. My CSS skills increased a lot as well, and I started to really love building a complete website from scratch, with just a design file to start with. Worked mainly in jQuery as well.

    Ultimately, I stayed at that job for 6 years, after which I decided to try the freelance route for a while. I had worked remotely for the last two years at the agency, so I was used to it by then. And I was incredibly fortunate to land freelance gigs immediately from former coworkers. This is what I'm doing currently-- freelancing for one main client, and working on my side project on the side.

    You might be wondering about my not mentioning where and how I learned to code. The fact is, I never took a single online course, bootcamp, or any kind of formal or even informal course. I learned entirely on the job, which I think is extremely rare these days. Timing wise, I got into the field before the "learn to code" and coding bootcamp explosion. So I didn't have much competition for that first agency job. Needless to say, the landscape has changed a TON since then.

    But I have seen quite a few resumes and conducted interviews for hiring devs at places I've worked. The majority of candidates have very boring (sorry to say), boilerplate portfolios that they obviously built during their bootcamp. So I think that you can definitely still stand out from the pack simply by having a robust, creative GitHub and a portfolio that is unique.

    For learning, there are a plethora of options for aspiring coders nowadays, which is awesome. As long as you pick one learning resource, stick with it until you complete it, and don't jump around too much, you will be fine.

    Feel free to ask any questions!

    1. 1

      Nice story, Jessica. You must be very smart. :)
      Do you mind sending me examples or explaining me better about what you mean by 'creative GitHub and a portfolio that is unique'?
      Thanks!

      1. 1

        Sure! So for the portfoio website, try to make your website not look like a Squarespace template. Try to be a bit more custom in your styling, but don't go overboard with creative features that will be distracting to the user. This sounds vague, but if you search on Google for "boring web developer portfolios" you'll find some helpful links.

        One pet peeve of mine in portfolios was that several of the projects inexplicably forced you to sign up in order to look at their actual site. I think this may have been part of the General Assembly curriculum, but it was a huge annoyance if you're trying to vet a portfolio.

        For GitHub, have projects with good code examples from the languages and technologies you are trying to get jobs for. Having a nice-looking, informative readme is a must, as that's the first thing people will see in your GitHub link.

        Hope this helps!

  6. 2

    I learned in college where I got a computer science degree. One of the harder things in programming is understanding how you might measure up to others. It's easy to feel like someone else started earlier or has some gift compared to you, if you are easily tempted to feel envious or inferior in that way. The important thing to know is that the field of programming is massive so comparisons are actually pretty apples-to-oranges in most cases. I learned while building the stowbots.com site that my CS degree really did not do much for my web-dev skills, so I was still learning most things from scratch. I heard something on an IH podcast that I hadn't considered before: if someone is totally new to programming and teaching themselves, they may not realize how much "failure" is involved in the process of coding. Going from error to error can feel extremely discouraging if you're not aware that that's how everyone does it, and it's actually totally expected!

    1. 2

      Great point, Nate. One of the founders of React has a post where he writes things that he doesn't know but most people think he knows, just because he built this nice framework. Let me know what you think: https://overreacted.io/things-i-dont-know-as-of-2018/

      1. 1

        Thanks for the link! I agree with a lot of it. We have different lists of things people think we know, but I think the common theme is things you actually do in production. My biggest strengths are algorithms, data science, and deep learning, but those don't help with launching a sales site and setting up HTTPS redirects.

  7. 2

    Got my first 8-bit home computers (Oric 1, ZX Spectrum) at the age of 15, way back in 1984. Learned their BASIC dialects and later their machine code. I'm occasionally guilty in falling back to use the idioms I acquired then in my recent projects. I've since always learned new languages and frameworks by myself. (Though I have a minor in computer science in college.)

  8. 1

    This brings back so many memories. My first programming language was C.

    One day I saw this random book on C at the library, primarily aimed at computer science students. I decided to buy it. I didn't have a computer yet. But I read the first few pages and those things looked pretty interesting. So I enrolled in a computer course and was pretty upset because they taught me MS Word and Excel instead of programming.

    Back then, there were no programming courses, I was still at high school and computers were pretty expensive. After I graduated from high school, I convinced my parents to buy me a computer. And that was the start. This time I started with Python, something easy enough for me.

    It took me several years before I could decide to be a programmer. But I am happy that I have chosen this path.

  9. 1

    Back at school (kind of a technical college here in Austria) we learned how to code. It had one downside though, we touched several languages, no concepts, and no real-world examples.

    Because I always wanted to build my own things to scratch my own itch I just started coding at home whenever I could and continued throughout the years. Then I got my first job, messed around in WordPress, switched to design-only jobs but never lost interest in concepts, devops and other topics.

    Since almost a year I'm finally getting the most out of a framework for the first time. Guess everything and every part of the puzzle makes sense now. Which helps me a lot to just ramp up the latest version of Bardo (my app) focused on teams.

  10. 1

    I started at university in first year with C++ , just small exercises, but I failed at university, so I tried to do by myself , finding some courses of Java, I keep doing harder exercises , then I found a Windows Phone course, I challanged myself and I tried to translate a small exercise into an app. Then every month I tried to do a simple app and then publish. Then I learn Android and web.

  11. 1

    I'm old school, I believe in vanilla code, writing it from scratch. The only frameworks you need are what is provided with the system. But anyway, back in 1995 we had AOL and they gave you a couple megabytes of web space. I learned HTML first, and that led me to JavaScript. Which led me to Visual Basic and Visual Studio. One of the first apps I created was a chat app for AOL. You would type commands and the app would output macros and stuff. I also punted people offline.

  12. 1

    Learned at college. One of my professors told us if we learn C, Unix and SQL we'll always have a job and learning these three has certainly help me in the last 20 years.

    I learned Java mostly by myself (when internet was still very very new, ) and then learned the framework in turn on the job day to day.

    In coding the most important skill is to always keep learning.

  13. 1

    I first started messing around with computers with Windows 3.1, and back then the threshold for doing anything on the computer was so high I was basically forced to learn basic programming and networking.

    I didn't start actually building things until I bought my first own computer in 2004 and bootlegged Macromedia Dreamweaver. For a few years I was just hacking together crappy sites in HTML/CSS, then I added bits of JavaScript, and then I added in some PHP.

    Eventually after far, far too long I added Python/Flask into the mix, and that's where we are today. I only learned from forums, tutorials, and hacking around with friends. I'm a terrible programmer. Don't really want to do real dev work.

    Thankfully my skills on the tech side are just good enough to enable me to do the business side of things & still work well with my partners who have a much, much higher level of proficiency in real programming.

Trending on Indie Hackers
After 10M+ Views, 13k+ Upvotes: The Reddit Strategy That Worked for Me! 42 comments Getting first 908 Paid Signups by Spending $353 ONLY. 24 comments I talked to 8 SaaS founders, these are the most common SaaS tools they use 20 comments What are your cold outreach conversion rates? Top 3 Metrics And Benchmarks To Track 19 comments Hero Section Copywriting Framework that Converts 3x 12 comments Join our AI video tool demo, get a cool video back! 12 comments