What's one thing you wish you knew before you started programming?

aspittel profile image Ali Spittel Updated on ・1 min read


Editor guide

That working as a programmer/coder/developer isn't nearly as fun as coding for hobby. Actual work is tedious, you often have to meet requirements you don't like, you often have to follow practices you consider bad, cause it's how the company wants it and that, if you cannot find enough free time and motivation, you might end up completely burned out.


I code for fun. I think having coding as a job is fun. My biggest hurdle to productivity is doing stuff that I don't particularly want to do. It's killer


This sounds more like -- One thing I wish to know before I started working. 😄


Totally relate to this. But having coding as your hobby helps you overcome the difficulties as long as you keep your work/life balanced. :D


You don't have to be good at math.



So many times I've been told people never tried programming because they said they were bad at math. I feel like programming is a lot more like literature & composition, my job is to express things clearly to both humans and machines.


I do agree, it is your story, hence copyright as opposed to patent.


I like this response, I'm gonna use it later.


At least for standard web development it might not be. For research based positions, data analysis etc etc we would most definitely need math, not necessarily to be a prodigy, but at least to have the drive to learn and adapt to it.


This is my favourite answer so far.


When my mom was young, she actually decided not to learn anything programming because of that.


That you don't need to know everything or compare yourself to others. There is no need to feel inadequate because of the vocal minority in-person or online that always have a complex thought, opinion, or question on a programming topic. Learn what you need, when you need it or learn when a topic interests you and you want to learn it. Most students or developers are in the same situation as you and they are doing fine.


So true. Among my peers it's a tireless competition to see who can be the most clever, and have the most interesting and provocative blog title / tweets.

Sometimes I just want to talk about memes and fantasy football and admit that I google half my docker files.


My self worth. I under estimated my pay value for years. Always taking the lost offer because I didn’t feel I was worth more. Many times seeing those who knew much less than I, making much more. I finally had a coworker years back, tell me that “you need to demand a raise for twice what you’re making or quit and get a job that does, because you have twice the skill set I do and I make twice as much as you”. That was the wake up call I needed.


Projects are important very important
Learning programming can be very clueless sometimes if u don't have a goal in mind
With Projects you run into bugs fix the them yourself which as a major part of the learning process


I can totally relate to this. I spent years accumulating knowledge without actually practicing my knowledge

  1. Prioritise self learning over college lectures
  2. Practice is the key to being comfortable with programming

Deep domain knowledge + a little bit of programming skill is more valuable than little to no domain knowledge + plenty programming skill.

Of course if you have both then that's the most valuable.

Take data science as an example. The domain knowledge required to truly excel as a data scientist is Statistics. Then add in a little Python, R or Julia and you're set.

The clearest example for me though is this video,

MS Paint is a simple application. Even my grandmother could learn to use it. But neither she nor I would be able to do what Pat Hines does until we learn the more fundamental skill of drawing.

It's the same with programming. Figure out your interest, study the domain and then leverage programming to achieve your goals.


Funny you said 'excel as a data scientist', because you can do a lot of data sciencing with Excel.


How many meetings you will attend and how important interpersonal skills are vs. hardcore programming skills.


That I would end up making a career of it. It was just something I did out of interest when I was twelve - so I would have paid more attention.

It's nearly 30 years later, and I still do it and they give me money for it, which amazes me.


That C# is just Java for people in suits


You realize Java is the OG Enterprise language, right? C# sees plenty of adoption within open source and "indie" now, especially with Unity.


Try every possible way of learning you can find, but stick to the most rewarding and enjoyable ones.


I wish I knew how important reading code is. I spend almost 70% of my time reading code than writing. Learning how to analyze and refactor code is one of the most important concepts in software development.


Do you have any recommendations of good code to start reading? I feel overwhelmed by the number of projects.


Are you working with JavaScript currently?


Probably...how ubiquitous it is? I wish it had occurred to me sooner how often I interact with things that are programmed: calculators, POS systems, automatic doors, traffic lights, etc...

Once I did it gave me a deeper appreciation for programs, their creators, and their uses. For a while I was only associating programming with websites and databases and games and etc... the stuff I think a lot of people are familiar with.


How important "soft" skills are.


take breaks regularly. Don't overwork your tendons. Using the CLI helps. Now I have RSI and am lucky to be ambidextrous so I can switch the mouse to the other hand every week or whenever it starts hurting. We are not made to spend 20-40 years hunched over a computer for 8 hours a day... The problem is you don't get the symptoms until about 10 years in.. It can be terrible as some friends had to abandon their careers when it started getting too painful.


Don't be afraid to google or ask for help


I started programming when I was 15yrs old when my dad enrolled me in a computer course. Until then I didn't know how to turn on a computer. My first programming language was C. I wish I knew Turbo C++ IDE was a dead software. I learnt C & C++ with that s/w. I thought that it was the only way to write C & C++ programs and I could not develop apps with GUI in those languages


In building any program, I wish I had spent more time thinking about the problem and its solution first before writing any code. Back then, I would eagerly jumped into writing code although the problem and solution were still iffy to me.

Somebody (can't remember who) said that "if you can't solve the problem by hand, then you can't solve the problem by code", and that holds true to me. This might sound obvious to many people, but it wasn't to me back then :P.


Absolutely nothing.

I started programming at a young age (25+ years ago), self taught until I started CS at the university. I just stumbled upon a compiler and started playing around with it.

The journey was full of wonder and amazement. The benefit of not knowing anything, discovering all these new things. Making all these mistakes, learning from them.


Context: I went through high school believing that I'd need to have 2 years of high school foreign language, but where I went, the requirement was one year of hich school "computing", which I didn't have. So I took a course on "programming", which was taught in BASIC.

There was a certain amount of "just make a thing, we'll judge it later", and I played roll-playing games, so my "make a thing" was a program to print out random numbers between one and six (a common die to roll), and then I made another that would do between one and eight.

I GOTOd to a high-number block, ifd to determine if it was d6 or d8, did the random thing, and jumped back to print.

And I found that computers are highly deterministic machines and that rand is not as random as you want, by running it a second time and getting the same page of "random" numbers.

So, the things I figured out from that process are:

  • seed your randomness, even if it's for toy values of randomness

  • functions and subroutines are an important thing for your language to have, and if you don't have them, you will try to re-implement them, poorly

  • that was enough of all that

But this is what I knew by Jan 1, 1989.

The thing I (today) wish I (then) knew about programming that these stupid roadblocks were known issues at that time, and that the languages I would use as a professional will have worked these dumb things, discovered a whole lot more dumb, and worked out that.

And that the process of fixing and improving is very fun.

(That's another off-by-one error, isn't it?)


That programming is an iterative process. I initially thought that you had to know everything about what you want to make from the get, and that if you don't, you're a bad programmer. Now I understand that it's okay, and even encouraged, to work on little bits of one part at a time, and stopping to do research about implementation is also okay.


That we put two men on the moon, with 8k of memory ;)

Seriously. All the krufty bloat nowadays. I recall a time when I could flatten out hold up a card to the lights above that was shredded in a reader (prolly because I stacked too many at one time) and read it off to a keypunch operator...

All the krufty bloat nowadays - memory's cheap, right?


I thought you should be really good at MATH. And don't compare yourself to others. especially in class, if they got a perfect score, they got the project done early, if they don't want to share their homework or teach you how they solved it. If no one will sit beside you because they think your dumb for not understanding flowcharts. its ok. I was that person but hey out of a 100 IT graduate batch 2012 only 3 has a dev jobs. The top 2 persons in class and me. YES!!!!! TO GOD BE THE GLORY!


How exactly heap and stack "works". Many things in JS would make more sense from the beginning if I knew how exactly memory behaves in a computer.
Event Loop


How hard it was going to be.


That programming languages are tools in getting the work done, or in building that solution. That it is okay to have a preference on which you prefer to use, but it is wrong to try and throw another language under the bus because you don't like it or because of what you heard about it.


I wish I knew how to hack 😎. Hell yeah. Watching it in movies seemed so motivating (and way easy). But then, I just had to settle for programming.

Moreover, I have learnt that; to be a good hacker, I must be a good programmer first 🤔.


I started programming when I was 10 in 1975. Does that count? I had no idea about programming careers at all ;-)

My second take was in 1999, the time web development took a surge and HTML, CSS, JS etc. was easy to pick up and be paid for it. If I knew back then, that software engineering is a discipline and certain principles and theories were older than I was, I would have invested in that knowledge.

But hey, I'm a Pragmatic Programmer and I pick up things a long the way. It took me a long time (in solitude) to be where I am now. Now I do value the worth of good software engineering and what it offers to the economy.


Who else wrote your first line of code when you were a child ?!

I used an Apple 2 when I was six, had some basic programs and made some changes to see what happened. That was really fun at the time!


Do it sooner. Don't be afraid. You will suck at things and it's ok, you'll get better at them.


Assembly language :) . My first two years of programming was horrible, but after doing assembly language course, everything became clear and I became better at it knowing what programming is really about. That's why i believe it is important to teach new comers, basic concept of hardware like how the cpu and ram actually works, how statements like assignment and looping works etc.
That's why I wrote an article for beginners, you may want to check out.


How to learn quickly and comprehensively, as detailed in books like Make It Stick by Mark McDaniel and Peter Brown. Also, to focus on high-level concept understanding versus trying to memorize EVERYTHING.


Estimates are BS for the most part, if we could accurately estimate software projects the consulting industry would tank overnight.

Find somewhere where you can be happy, if possible. Not everyone has that luxury and sometimes life seals your fate for the time being. But when you are leaving work early to go home and work on your pet project, you might be in the wrong job.

If management doesn't trust employees, your best reaction is to get out of there as fast as you can. I have never seen the situation improve, no matter how hard I tried.

Don't date coworkers. I have gotten myself into some real ugly messes dating coworkers and behaved in a manner I am ashamed of. But these experiences let me learn I have some significant mental health issues that I need to address, so now I need to work on that and find peace not dating for a while.


That 80% of the work happens after you think it's almost done and that the words 'edge case' is really where you will spend most of your time.


There is no magic in programming. It is logic as 1 + 1 equals 2. I believed that not each one can code and that made me late for almost four years learning how to code.


One of your most important skills is your ability to look things up. You won't need to memorize the entire "dictionary" of a language or framework to get stuff done. It's just important that you know what's possible then learn/remind yourself how to implement it.


About programming? I knew nothing when I drew my first line in QBASIC. What should I have known? I think nothing. What should anyone else know? I started when I was a kid. I knew nothing and it was empowering; it left me only with the capacity to be creative, excited and inspired.


Just knowing how to code won't help. You need to know how to use the coding knowledge to solve a problem.
Just knowing for loops without knowing their use cases won't help.


What I wish I knew before entering mechanical engineering was that much of the learning and creativity are lost when you get a real full time job. Much of what you do is maintaining decade old designs, making very small careful changes, and talking about them for days in meetings.

Moving to software engineering allows me to learn new things every day, be creative, and create new things.


1) No one can be an expert at everything.
2) Anything you imagine is possible in the world of computer only three things you'll require are passion, persistence and willingness to learn.


Being vulnerable is not a weakness and is the starting point for amazing growth personally and professionally.


I wish I knew English so well before I started programming.
Most of the resources I had access to were in English and not being able to get all the vocabulary was a huge barrier.
I remember it took me so long to fully understand what “mocks” in testing actually were 🤦🏾‍♂️


If you wanna get better, try to solve a problem you don't know how to solve. Don't give up.


It's all about repetition. You'll encounter the same situation over and over until it makes a solid connection in your brain. Then you'll forget the solution, but you'll remember how you found it.


It's a social job, most times!

Don't expect to be working on your own in a dark room with a hoodie. You will need to talk to humans and maybe even they will talk to you :P


That syntax, trends and technologies are transient and therefore irrelevant in the long run. A solid understanding of the groundworks of computer sciences though you keep you confident and reliable throughout the years.


There aren't correct answers, context always matters.


I wish I knew programming was that much fun. So I could start learning it a long time ago.


You will never know everything. And that's OK. Just learn to defer to others when you don't know.


Its not a dumb question .. ask away