Tania Rascia

Skip Navigation
Everything I Know as a Software Developer Without a Degree

Everything I Know as a Software Developer Without a Degree

 /  25 responses

I’m not going to get into the details of my story – in short, I liked making websites as a kid, but I went to culinary school and worked in the restaurant industry for nearly a decade. Eventually I needed out, and I decided on making a career out of web development. Despite only knowing some basic outdated HTML and CSS, I wanted a new life and I wanted it without going back to school and getting a degree, or paying for a bootcamp.

I see people ask all the time what they need to know to become a web developer, how long it takes, what they’ll make, and so on. It’s hard to have all the answers to those questions, but I can share my own experience.

So I present to you a list of all the concepts, libraries, frameworks, and technology I’ve learned over the years, in the order I learned it, with links to the side quests and articles I’ve written about them. Although I’m trying to write it in order, there is some overlap.

I’ll try not to make too many assumptions, but this list is not meant to be a deep dive on any topic – although many of the links are!

Note: Some of the earlier articles may be amateur and have information that I wouldn’t necessarily put into an article on the subject if I wrote it today.

Pre-Knowledge (1998 – 2014)

I made my first websites in the late nineties by viewing the source of sites I landed on in Netscape Navigator (a browser), copying the HTML into Notepad (a text editor), and uploading the pages to Geocities (a web host). HTML, text editors, and hosting most likely seem like second nature to many of us, but like everything else related to computers, it’s not inherent knowledge, and it’s a hurdle to get through as a beginner. I just happened to do it early enough that I wasn’t even aware I was learning.

Here’s what I learned in that period, although since I learned by doing, I didn’t know the proper terms for many things:

  • An idea of what HTML (Hypertext Markup Language) is – the very first step to doing anything related to web development.
  • How to view the HTML source of a web browser (Netscape Navigator, and later Internet Explorer).
  • How to create and edit an HTML file with a text editor (Nodepad) and save it locally on my file system (Windows as my OS).
  • Basic HTML tags/elements – text, headings, lists, tables, links, images, formatting (also blinking text).
  • How to make colors with hex codes.
  • How to use FTP (File Transfer Protocol) to upload files from my computer to a web host on the internet to make my website publicly accessible.

A few years later, CSS became popular, and I spent the next several years copying the CSS of sites I liked to make designs. CSS was revolutionary because you could do things like change all the colors of your links in one spot instead of all over your pages, having different sets of link colors, and so on.

  • How to use CSS (Cascading Style Sheets) to design the layout, font, spacing, and colors of a website.
  • How to bring CSS (Cascading Style Sheets) files into an HTML file.
  • How to create layouts with floats instead of tables.

Although I had been making websites for years, I’d never read a tutorial, article, or watched a video about web design/development. So although I was oddly competent at making a website intuitively from all the sites I downloaded and played around with, I didn’t actually know many basic concepts like how CSS selector specificity worked, or ids vs. classes, how to use pseudo selectors, and I would often end up brute forcing solutions for things like positioning and the box model.

This is generally the extent of everything I knew about web development before I decided to make a career out of it: basic HTML, basic CSS, basic managed hosting, and transferring files via FTP – everything I knew was static development, and I had absolutely no concept of programming. For anything that might be more advanced or dynamic – counters, guestbooks, blogs, forums – I used a third-party resource.

Getting Started and Internship (2014-2015)

Somehow, it still didn’t occur to me to really do much studying before diving into this new career. I bought HTML, XHTML & CSS for Dummies from a used book store – which was honestly only a few years out of date at this point – and looked over it all. I was pretty overjoyed to discover that I knew basically everything in the book from my heuristic approach, but now I knew more of the technical terms.

I was lucky enough that a bartender at the restaurant I was working at was starting his own business and offered me an unpaid internship for a few months. So by day I did the internship and by night I cooked at the Pac-Man restaurant. At the same time, I was scouring Craigslist for some small jobs, and I created a few static Bootstrap sites as a freelancer. A lot changed since my early days, and here’s what I learned during this time.

  • Upgrading Notepad to Notepad++ was a first step, which I quickly traded for Adobe Brackets.
  • How to use Bootstrap, a responsive CSS/JS framework – I found out responsive design was a new thing I would have to know, and I learned how to integrate Bootstrap, a third party framework, into my sites. I made a site about accordions at this point, and spent a long time trying to use PHP to set up a contact form on my Bootstrap site.
  • The fundamentals of responsive design without a framework – I didn’t like how dependent I was on Bootstrap to create a responsive design, so I learned how to make a responsive site without it.
  • The basics of jQuery, a JavaScript library – Although I had no knowledge of JavaScript or programming, I began to figure out the basics of jQuery by copying and pasting snippets and code and hoping for the best – which I would use to make “awesome” effects like parallax scroll. It was a hurdle to learn how to load a JavaScript file, load jQuery first, and other very novice mistakes. Eventually I learned how to make tabs, accordions, dropdowns, modals and other common UI elements from scratch with jQuery.
  • How to create several types of navigation styles without relying on Bootstrap – dropdown navigation bar, off-canvas navigation, full-screen navigation. I really wanted to be independent of relying on Bootstrap.
  • How to use flexbox – I can’t say I understood flexbox to the full extend at this time, but I was beginning to figure out how to use it in many situations that I had previously used floats.
  • How to use and and set up a Mac – I started using a Mac for the first time, after 20 years of only using Windows.

I have to make a pause here, because the next thing I learned blew my mind and is what really enabled me to start moving to the next level beyond making simple brochure-type websites: the command line.

  • How to use the command line (*nix) – understanding that I could navigate and command my computer through the command line seems obvious to me now, but was revolutionary for me. I learned about moving, copying, deleting, changing permissions, installing programs, using command line text editors, sudo, and more.
  • How to use SSH (Secure Shell) to login to another computer through the command line. This blew my mind as well.
  • How to use Sass, a CSS preprocessor – this enabled me to install and learn Sass, which was my initial reason for learning the command line. I learned how to structure a project, use variables and nesting, and watch changes to a file to compile Sass to CSS.
  • How to use Grunt, a JavaScript task runner – Just compiling Sass wasn’t enough – I wanted to combine it with auto-prefixing, minifying, and other tasks. Grunt was the way to do that, so I learned how to set up a Grunt process.
  • How to install and use Node.js and npm – in learning how to install Grunt to compile my Sass, I had to learn how to install Node, and importantly, the concept of local installations. This opened up a whole new world to me.
  • How to use Gulp, another JavaScript task runner – I quickly realized Grunt was convoluted and slow, so I upgraded to using Gulp.
  • Programming 101 through JavaScript – comments, varibles, data types, and comparisons, math, and logic. I didn’t know how to do anything practical with programming yet outside of my jQuery tinkering, but I started gaining a better understanding of the fundamentals.
  • How to use basic Git commands and make a repository – I didn’t quite understand Git yet, but I knew how to use four or five commands to use Git as a glorified FTP, and that was a start to learning about version control. I knew Git was important, but without a team to work with I wasn’t exposed to many of the concepts I’d learn later.

Job 1: Junior Web Developer – WordPress (2015-2017)

11% salary increase from experienced chef to entry level junior WordPress developer

It’s great that I learned all that, because for my first real job in the industry, I was going to use practically none of it. No Git, no Node, no Sass, no Grunt nor Gulp, no command line, no Bootstrap. Just cold, hard WordPress. Nonetheless, this was going to present a whole new group of challenges to overcome and things to learn.

A few months into my internship, I applied for a job at a different company as a junior web developer/designer. I’d spend the next two years (exactly two years, to the day!) making websites with Teo.

  • How to set up a LAMP environment – I had hosting, but I never used PHP and it never occurred to me that a host was any different than my local HTML setup. I learned how to set up a local environment for Linux (or Mac, or Windows), Apache (the server), MySQL (the database), and PHP – a full “stack”.
  • How to set up Apache and virtual hosts – I learned how to configure the Apache server to be able to run many virtual hosts at the same time.
  • How to set up cron jobs in Linux.
  • The basics of PHP and PHP tags – “PHP: HTML Preprocessor”, as is what PHP stands for, is the most popular programming language on the web and the lanugage most web developers start off with. I learned that if I started some code with <?php and ended it with ?>, everything inside would be PHP, and everything outside of that would be rendered as regular HTML.

For the longest time, I wanted to know how to make my OWN blog – not rely on Blogger, or WordPress(.com) hosting, but something I hosted myself with my own design – not someone else’s theme. But how? I didn’t know how and it was immensely frustrating. I struggled a lot, and when I finally figured out how to use WordPress(.org)’s platform to create my own unique blog, I wrote an article to share with the world what I learned.

At some point, I was given the responsibility of learning how to use AWS (Amazon Web Services) to set up Linux servers and migrate our websites over.

  • How to use AWS and the AWS ecosystem – I learned so much about DevOps and AWS in this period – setting up a VPC (virtual private cloud), an EC2 instance (a virtual server in the cloud), S3 (object storage buckets for static files), setting up a LAMP server from scratch, migrating websites and configuring DNS (Domain Name Service), generating public/private keys, and much more.
  • How to set up virtual machines, using Vagrant and VirtualBox
  • How to set up an SSG (Static Site Generator) using Jekyll – I started exploring other methods of setting up things like a blog, and learned how to make a Jekyll blog and host it on GitHub.
  • How to use PDO to connect to MySQL and create a CRUD app: Creating, reading, updating and deleting – Soon, I got tired of relying on WordPress to do anything dynamic with a website. Since I already knew some PHP from WordPress, I looked into learning how to build my own dynamic site that could connect to a database.
  • Accessibility – I learned much about making a website accessible for people with disabilities, from having appropriate contrast, to making websites accessible only by keyboard, to captioning audio, and much more, following WCAG 2.0 standards.

Side project: Primitive CSS Framework

While working as a WordPress developer, I also made all my own custom designs for the sites I created. To speed up this process, I created Primitive (source), a minimal CSS framework and website boilerplate that made it quick and easy for me to make unique, custom designs. The framework is built in Sass. With Primitive, I could create the majority of a site’s CSS in a few hours.

I built many sites with Primitive – Cafe Ba Ba Reeba, Shaw’s Crabhouse, Tokio Pub, Krispy Kreme Pacific Northwest, this blog, and more.

Side project: New Moon

I created New Moon, the best code theme for web development, and distrubuted it to Visual Studio Code, Brackets, Sublime Text, Chrome DevTools, learning how to create extensions for each of those environments.

Side quest: Technical Writer for DigitalOcean

I took a few month long sabbatical and traveled around Europe for a while after I left the WordPress job, but during that time I wrote the How to Code in JavaScript and Understanding the DOM (Document Object Model) series, which gave me a much deeper understanding programming and JavaScript, concepts like prototypical inheritance and scope, and finally understanding how the DOM actually works and is different than a website’s source, which was much less relevant to me when I was only working with PHP-based sites.

I learned about syntax and code structure, comments, strings, variables, scope, and hoisting, math, arrays, mutator, accessor, and iteration methods. I also learned about objects, object methods, conditionals, functions, prototypes and inheritance, and classes.

From the DOM side, I learned what the DOM is and how it’s different than HTML source code, about nodes and node types, how to access, traverse, and change the DOM. I also learned how to modify styles, classes, and attributes, and gain a better understanding of events, event handlers, and event listeners.

Job 2: Back End PHP Developer (2018)

28% salary increase from previous starting salary

After I got back from traveling, I started looking for another job. I knew I never wanted to work in WordPress again, and I didn’t necessarily want to learn another programming language and its environment to find a job right away. I also thought PHP was fun, so I wanted to find a job where I could use PHP, but not WordPress.

Side project: Laconia MVC Framework

During this time, I wrote Laconia (source), a modern MVC (Model View Controller) application written in plain PHP without libraries or frameworks. I wanted to learn how to create something with MVC architecture, and I didn’t want to rely on a framework to do it. I wanted it to be secure, and I wanted it to have users. I aimed to and succeeded in learning the basics of:

  • Authentication – logging in, logging out, resetting a password, having private content/dashboard hidden from anonymous users
  • Security and validation – encrypted passwords and hashing, parameter binding with SQL, making sure users cannot be overridden, making sure no spam or empty content can go through, making sure passwords and usernames have the proper characters
  • Routing – Redirecting to URLs based on incoming request method and URI path, creating public user profiles in the root directory, creating dynamic pages based on GET requests
  • Object oriented programming – I had never used a class in a working application before writing this app, so I learned a lot about constructors, inheritance, and abstract classes
  • Composer – I had no prior experience using Composer, so I wanted to find out why it was the standard in modern PHP development. I used it for autoloading classes and configuration.
  • Database schema – how to structure a database to relate information easily between the tables, i.e. linking lists and list items, users and user comments, etc.
  • Sessions and Users – how to easily deal with sessions, users, and authentication.

Job 3: Front End Software Engineer (2018-2019)

17% salary increase

Eventually, I wanted to do anything else besides PHP or jQuery. JavaScript seemed like a good choice due to all the JavaScript I had been teaching myself on my own, so I ended up getting a position as a front end software engineer writing applications in React. I also didn’t know React when I got the position, but I learned quickly.

  • ES6+ – The syntax of ECMAScript 2015/ES6+, the new additions to JavaScript made over the last few years.
  • How to use React – I was very opposed to learning React, Vue, Angular, or any other JavaScript framework/library until I felt like I could do what those things accomplish in vanilla JavaScript first. (The same policy is why I created Laconia instead of learning Laravel.) I struggled to understand React for quite a bit, and once I got it I wrote this article, which is awesomely included in the official docs!
  • How to use React Hooks, and other React components, and React Router.
  • How to use the Semantic UI React library to quickly and efficiently make prototype applications.
  • A deeper understanding of REST and REST APIs – I really began to understand how resources should be structured.
  • How to make a server in Node.js, using the HTTP module or Express.
  • How to connect to a MySQL database from Node.js and make API calls.
  • How to use PostgreSQL.
  • The concept of asynchronous programming, and how to use callbacks, promises, and async/await.
  • How to write scripts in Node.js – I wrote a script that would generate JSON from a Google Sheets/Excel CSV that could be utilized throughout an application.
  • How to set up a project with Webpack with hot reloading
  • How to use Git to work with a team – merging, rebasing, fixing merge conflicts, stashing, and working with feature branches.
  • Error handling.

Side project: Chip-8 Emulator

My project of 2019 has been creating a Chip-8 emulator in Node.js from scratch, thanks to Vanya Sergeev. I’ve learned many lower-level programming concepts, such as:

  • The concept of binary, decimal, and hexadecimal base systems how they interact with each other and the concept of abstract numbers in programming.
  • Bits, nibbles, bytes, ASCII encoding, and big and little endian values.
  • Bitwise operators – AND (&), OR (|), XOR (^), left shift (<<), right shift (>>) and how to use them for masking, setting, and testing values.
  • Using the Node built-in file system(fs).
  • The concept of a raw data buffer and how to work with it, how to convert an 8-bit buffer to a 16-bit big endian array.
  • How to write and understand an 8-bit and 16-bit hex dump.
  • How to disassemble and decode an opcode into instructions a CPU can use.
  • How a CPU can utilize memory, stack, program counters, stack pointers, memory addresses, and registers.
  • How a CPU implements* fetch, decode, and execute*.
  • The importance of unit testing.

Things I Don’t Know, Abridged

In true Dan Abramov fashion, I’m happy to admit the plethora of concepts, technologies, libraries, frameworks, etc. that I don’t know. What I don’t know I don’t know is much more extensive, however. This is things I don’t know that I think I probably should.

  • GraphQL
  • Redux/MobX
  • Docker
  • Electron
  • React Native
  • Vim
  • Algorithms
  • Data structures
  • Calculating time complexity
  • Algebra, honestly
  • Sockets
  • Networking
  • CI/CD
  • Types

Jargon Glossary

A small subset of the jargon acronyms that are familiar to me now.

  • API – Application Program Interface
  • Back end/server-side – the data access layer
  • CMS – Content Management System
  • CRUD – Create, Read, Update, Delete
  • CSS – Cascading Style Sheets
  • DNS – Domain Name Service
  • DOM – Document Object Model
  • ES(6) – ECMAScript
  • (S)FTP – (Secure) File Transfer Protocol
  • Front end/client-side – the presentation layer
  • HTML – Hypertext Markup Language
  • HTTP(S) – HyperText Transfer Protocol (Secure)
  • JSON – JavaScript Object Notation
  • MVC – Model View Controller
  • REST – Representational State Transfer
  • SPA – Single Page Application
  • SQL – Structured Query Language
  • SSG – Static Site Generator
  • SSH – Secure Shell
  • SSL – Secure Sockets Layer
  • TLS – Transport Layer Security
  • VCS – Version Control Systems (Git)
  • VM – Virtual Machine

Conclusion

Carl Sagan once said, “if you wish to make an apple pie from scratch, you must first invent the universe”. That is how I felt writing this article. I tried to compile everything I know, but each new thing involved some previous knowledge, and that required previous knowledge, and at what point do I stop?

I’m missing plenty, I glossed over more, but in the past five years or so, I’ve tried to compile and write about everything that has tripped me up along the way. I hope something I’ve written has helped you in your own journey, and will continue to do so in the future.

I’ve written 123 articles about web development between my own website, DigitalOcean, SitePoint, Codrops, Envato Tuts+, and Progress.

Newsletter

Get updated when I create new content.
Unsubscribe whenever. Never any spam.

Note

I'm Tania. I turn down every ad, affiliate, and sponsor request I get. I write free resources that help thousands of people successfully become devs. If you enjoy my content, please consider supporting what I do.

Support my work

Write a response

Your email address will not be published. Required fields are marked *

All code will be displayed literally.

Discussion

  • Muhammad Nasir Rahimi says:

    I didn't found you said that you know Laravel, so I think you do not know it till now so if you don't know it I'm highly recommending it to you and I believe that you'll love it.
    There are some other concepts important and famous now a days as well i.e. Containerization (Docker), IoT, AI, ML and …

  • Vandana says:

    My name is Vandana Female Age 41. I am web developer from 12 years.
    I am reading your React post on your website. Its very very helpful and concise.
    You are very hard working and intelligent. Nice to know.
    Would definitely try to support you.

    I live in Chicago, how about you. Would be happy to be friend with you.

  • Uri Frazier says:

    Nice article, Tania!

    Thanks for sharing. It certainly seems like something I can refer to as I look to grow into being a web developer/programmer.

    – Uri

  • Ishibe Koichi says:

    Thank you so much for sharing. It is very encouraging for a fellow self-taught developer like myself. I have a very similar background, but wasted many years smoking weed and feeding my sex addiction – which was also very educational. Now I am a UX/UI designer, but sometimes all I want to do is write some code and build stuff. I find it so satisfying (when it actually works). Keep up the good work!

  • Frankie Valentine says:

    There are illogical conversations on the topic of software engineers or developers with degrees or without degrees. I don't wish to feed into this. I can't stand to read the arguments for or against each stipulation.

    What I do know is that being able to become a software engineer or developer today is more accessible than ever. Your college education does not trifle a self-taught developer. There are so many ways to access the resources you need to learn.

    To shame Tania on her journey is unreasonable and undeniably wrong. If you truly feel that your paid education proves you to be somehow superior to her because she is self-taught shows more than ever that you didn't learn anything with that education. And just maybe you should be even more in debt to pay to learn some better social skills. The way I see it is this, if you are an educated developer you want there to be more access for individuals to obtain a career in a STEM field, not less.

    So thank you Tania, for being one of the best resources for me in my journey, and I'm happy to hear yours with open ears. Heres to hoping there is more acceptance for being a self-taught developer across the industry as a whole.

  • MJ says:

    Thank you for sharing your nice story Tania. It is really amazing that one of your articles about React has mentioned in Official React Documentation and it was the reason I found your great blog.
    The real engineer is you, not those assholes that think a piece of paper would turn them to an engineer.
    Keep your great path.

  • Eric says:

    Hey Tania,

    a big thank you for all the courage sharing your journey.

    It's really fascinating to read the struggle of a couple people here to accept your job titles as what they are; Titles.

    It's the same old story of people pissed off about all those changes in the IT landscape. Java, C, C++, PHP, {placeholder} is no more the new shit, and old fashioned "Engineers" find themselves outside looking in. JavaScript is still a scripting language to them and you won't teach them anything else. They will realize what's up when replaced by some FaaS. Just tell them "Cool, but it's not for you" Quote: Seth Godin

    The Trifecta of HTML, CSS, and JavaScript is changing the landscape in a lot of ways and you do a brilliant role model exercise here to teach.

    You can build anything, server, desktop, mobile, smartwatch applications with just HTML, CSS, and JavaScript.

    Keep your path and you will have a blast of a future.

  • Jlonuz says:

    Escribí algo que no se ha publicado 😀

  • Maria says:

    Thank you for sharing. It's a long way, but it's different for everyone. For example, my employers wanted to know as much as a person with 2 years of experience and pay me as a person without experience. In every company, different technologies are used, so one faces the challenge of learning new things. How did you do it with your previous experience? How did he fill his portfolio at the beginning when he had no experience?
    How can I get experience when I do not get the chance to accumulate one? How do I find my mentor? I need some things to explain to me.

  • Daniel says:

    Tania,

    I liked reading your story of how you came to be a web developer, it was a real education in how much constant learning there is in the field. I'm just beginning my journey of becoming a web developer, with learning HTML. Thank you for all the great article!
    Daniel

  • Steve says:

    That is a pretty exhaustive seeming rundown of what you've learned. Thank you for sharing, and putting the obvious effort into it!

    One thing I've been learning is that it is one thing to know how to write code in any particular language, it is another to learn the 'everything else', surrounding it.

    As I am sure you are, ignore the Engineering snobs below. They obviously ignored their mother's sage words, not to say anything at all if you can't say something nice.

  • Corey says:

    You don't even qualify to be a licensed engineer. Go to ncees and see if you can take a PE exam to even call yourself an engineer. You can't.

  • Steller says:

    I'm not sure how you can call yourself a software engineer. I spent 4 years getting a software engineering degree from a tech school not CS. You didn't take engineering classes or physics or advanced maths. You are not using engineering principles. community college classes you can take but in software engineering and computer science you don't learn CSS, JavaScript, and HTML. That's self taught since it's so easy. You are a self taught web developer and nothing more.

    • M says:

      Bro you're dumb bye

    • pigey says:

      I don't see where this article puts the emphasis on the software engineering. She now holds the position that is called this way but a title is only a title. Seems like you are pissed off because she is done all this by herself without help of teachers on the University and without pre-given plan AND not paying for that. Her dedication is extremely impressive and your comment very cheap. Not liking the fact that you maybe are still paying student loan and she earns the money? take the example from her and instead shitting around share your college degree knowledge with the people:P And hey, did you miss that part where she is writing what she would like to know more? I bet she will learn alghoritms, data structure etc. when she decides its time to do so in order to further develop her skills and then she will share it with us.
      I love you work Tania! keep on rocking!

  • Mizhar says:

    Thanks for sharing your experience..

  • Hamid says:

    Great – Moving from Cooking to Web Development is a so big challenge and you did it brilliantly by learning all the Web arts – Very impressive really. Chapeau.

  • Hi Tania,
    I'm old guy, that plan to follow your steps, a little late but hope to do something by myself.
    However I started my journey to keep me busy and learn from the young people as yo are.
    Your curriculum is very impressive. Congratulations.
    I used to live in US. I'm an American citizen retired in Colombia.
    Thanks to remember me.
    Many Thanks
    [email protected]

  • Martin says:

    I'm also self-taught and can relate to your learning path. Except all my learning started in 1996, blogging wasn't popular then, so I didn't have the sense to write tutorials on each step. I think it's genius that you did that. I'm also guessing you missed an entire series of articles about The Elements of Design, because your websites have good design sense, and most programmers have inadequate understanding of design. Great work, and looking forward to reading more from you in the future!

  • Timm says:

    really to me I have to say it just sounds like you were a tech-focused person that wanted to cook….so you did then came back to what you liked as a kid. I, on the other hand, paid for an education to become a software developer and still paying deep into my 30's now and well you surpassed me. I am just a wordpress developer with hopes and dreams of moving more into that same direction as you. Good job and no one can say good luck was the reason for your success it was the hard work. Also you have one heck of a nack at writing keep it up.

  • MotoRossi says:

    A few of the early articles you wrote were foundational to my understanding of concepts I had previously struggled with. You have a gift for being clear and direct in your educational writing, giving abstract concepts concrete examples that make sense. Thank you so much, and great work–good luck on your continued journey!

  • G. Coppola says:

    I wish you all the best, but my suggestion is to study as soon as possible algorithms, data structure and complexity.
    You can use whatever language you already know.
    But these make a huge difference.
    For html and css you don't need them, OK.
    But for other things, it will let you write better code if you know them.

    • Jason C says:

      +1 to algorithms and data structures.

      I'm also a self taught web developer, and just listened in to the MIT's Open Courseware class on Algorithms because I honestly didn't know what people meant in interviews when they started spouting a bunch of jargon about time complexity and algorithms. Although I understood those concepts in a basic form, having a bit of background on it helped me communicate better with other developers and also certainly helped improve the way I structured and thought about my code.

  • Pawel says:

    I recently came across your website and it's the best source of 'intermediate' learning for me. Thanks to your tutorial, first time in my life, I have created a small website and connected it to an external API. I'll keep on reading your tutorials. Thank you.

  • Jake says:

    We have similar histories. I, too, started by dissecting stuff and using Geocities. Did some time in the Army, worked as a paramedic for 8 years, client work for a web development firm, enterprise stuff at a flight simulation company, some work for the Outdoor Channel, now I'm a developer with a utility company.

    I never went to school for any of the development stuff. Just messed around with it quite a bit and built projects with what I learned.