What should I do Before I give up programming?

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • Appwrite - The Open Source Firebase alternative introduces iOS support
  • Sonar - Write Clean JavaScript Code. Always.
  • InfluxDB - Access the most powerful time series database as a service
  • reactstrap

    Simple React Bootstrap 5 components

    3 months is not a long time to learn web development! I made my first web site in 1995 and I've been doing it ever since. On a bad day I still get flustered with React and CSS. How much of a skilled trade like plumbing or carpentry or welding or being an electrician could your learn in 3 months?

    The "ultimate" web developer has a wide range of skills that almost nobody has. For instance, the ultimate web developer knows some systems programming (will need it when things go terribly wrong) but also is a talented artist that can not only draw images but can also make systems of images, colors, fonts and other assets that combine as required, create 2d- and 3d- animations, etc. (Thank God people decided it isn't cool for web sites to play sounds or you might have to be a musician and/or sound engineer too!)

    There is a level of skill in graphic design that is less than that where you understand how to pick colors, pick fonts, make harmonious layouts. It's a subject I am still learning: from time to time I have a rather serious "graphics" hobby like printing a series of decorative cards, photography projects, etc. I learned a huge amount when I had to to an accessibility overhaul for the site I work on, not only in terms of accessibility standards but how to think about graphic design. (e.g. when you pick colors, the first thing to think about is how bright or dark they are, any design that makes sense in color makes sense in black and white. I am a fan of Ansel Adam's writings on photography for this reason. In fact I learned a lot about composition when I picked up a book on portrait photography the other day.)

    CSS is hard. It has that graphic design knowledge as a background, yet few graphic designers have the discipline of programming that CSS really demands. You can get hung up on the details of selectors, inheritance, padding, borders, margin collapsing, all that. You won't really be in control until you know how to look up anything in the official docs, but those docs are sprawling


    I count at least 50 documents that are "normative references" right there! (Clearly not something you can master in 3 months)

    On top of that there is the complexity of "CSS frameworks" built on top of CSS. All of them have additional concepts to learn but they don't absolve you from having a complete understanding of what lies beneath.

    To pause for a sec, note that web devs usually work in teams -- so you don't have to go it alone. A designer might make you comps in Photoshop and it is your job to write HTML and CSS to make it look like that. Hopefully you have a tester, sysadmin, marketing people, etc. If I had my way somebody would plan how CSS is used systematically to help multiple designers and devs do the right thing.

    Then, React. I feel completely in control with components I write myself, but the sheer number of third-party components that you might choose or that you might encounter in React code somebody else wrote.

    You'd image a widget set like




    would let you largely ignore HTML and CSS and you might really make some apps where the "XML" looks like a desktop application but marketing some day will require you to customize these radically or you will encounter some application that mixes three widget sets and seven other third-party components and you need to understand all of that stuff to be in control.

    Sometimes you are more in control, sometimes you aren't. When you're not in control you appear to make rapid progress sometimes but you also get stuck and things that you'd think would be quick take a long time and you know... That's what is.

    But... We are not in perfect control and many businesses make many minor and major mistakes in their infrastructure, still make money, still pay coders.

    I'd say though that there is something wrong with React. I like how React can draw any application I imagine, particularly with


    but it does not have a real plan for how information flows in your application. I like the way props flow downwards, but those components that pass context are a disaster. React provides you with tools you can use to implement your own plan... Or maybe barrel ahead without a plan which won't be bad if you are lucky and your app is small, otherwise things may get worse and worse and things the boss thinks look easy are really very very hard and you'd better get control!

    So your 3 mo bootcamp is just the beginning of learning the trade. You can get a job in the industry already but if you do you may find it is SNAFU in many places, it is not unusual for a developer to take several weeks to be able to put together a dev workstation, build and run the system. Ideally you get in with people who model good behavior but even then you will have times you are feeling unproductive because you are not productive because of situations not entirely in your control.

    Other than that you can do side, personal, family and friends projects. Find some answers to the above problems that let you make the kind of app that you want to make, try to spend as little time as possible learning frameworks and languages and instead focus on a small toolbox where you can pound out little projects where you feel in control and that will build your confidence and skills until you are ready to swim with the sharks.

  • love

    LÖVE is an awesome 2D game framework for Lua.

    There are beginner-friendly engines like Love2D. Getting started with something like that should be straightforward provided one has basic programming notions. Otherwise, learning C (or C++) and exploring the internals for yourself will teach you a lot more about programming and data structures than using whatever web technology webdevs are using to inflict pain upon themselves these days.


  • Appwrite

    Appwrite - The Open Source Firebase alternative introduces iOS support . Appwrite is an open source backend server that helps you build native iOS applications much faster with realtime APIs for authentication, databases, files storage, cloud functions and much more!

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts