DEV Community

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

Ali Spittel on July 05, 2019

Collapse
 
listnux profile image
ListNUX

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.

Collapse
 
navarr profile image
Navarr Barnier

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

Collapse
 
jamland profile image
andy_801 🔫🇺🇦

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

Collapse
 
hellovietduc profile image
Duc Nguyen

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

Collapse
 
captainawesomedi profile image
Di Wu

You don't have to be good at math.

Collapse
 
edwinthinks profile image
Edwin Mak

+100000

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.

Collapse
 
ozzman profile image
Ozzie Love

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

Collapse
 
mcdtbo profile image
Thabo Pali

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

Collapse
 
rzpicazzo profile image
Alejandro AP

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.

Collapse
 
murtezayesil profile image
Ali Murteza Yesil

This is my favourite answer so far.

Collapse
 
faridkhan profile image
Farid-khan

Really

Collapse
 
ryansmith profile image
Ryan Smith • Edited

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.

Collapse
 
christopherarter profile image
Chris Arter

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.

Collapse
 
rubyjane88 profile image
Ruby Jane

relatable!

Collapse
 
dechamp profile image
DeChamp

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.

Collapse
 
aore profile image
Emmanuel Oreoluwa

Projects
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

Collapse
 
luqman10 profile image
Abdul Qadir Luqman

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

Collapse
 
veedhee profile image
vidhi
  1. Prioritise self learning over college lectures
  2. Practice is the key to being comfortable with programming
Collapse
 
lady_phair profile image
Amber P.

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

Collapse
 
dwayne profile image
Dwayne Crooks

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.

Collapse
 
jacoby profile image
Dave Jacoby

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

Collapse
 
codingmindfully profile image
Daragh Byrne

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.

Collapse
 
shane profile image
Shane McGowan

That C# is just Java for people in suits

Collapse
 
mburszley profile image
Maximilian Burszley

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

Collapse
 
karataev profile image
Eugene Karataev

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

Collapse
 
ryands17 profile image
Ryan Dsouza

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.

Collapse
 
tdannecy profile image
Tim D'Annecy

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

Collapse
 
ryands17 profile image
Ryan Dsouza

Are you working with JavaScript currently?

Collapse
 
djtai profile image
David Taitingfong

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.

Collapse
 
skoria profile image
Ale Fernandez

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.

Collapse
 
elmuerte profile image
Michiel Hendriks

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.

Collapse
 
danielkakai profile image
DANIELKAKAI

Don't be afraid to google or ask for help

Collapse
 
svijaykoushik profile image
Vijay Koushik, S. 👨🏽‍💻

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

Collapse
 
zmercedes profile image
Zoilo Mercedes

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.

Collapse
 
jacoby profile image
Dave Jacoby

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?)

Collapse
 
dylanesque profile image
Michael Caveney

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.

Collapse
 
artoodeeto profile image
aRtoo

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!

Collapse
 
garrett profile image
Garrett / G66

How hard it was going to be.

Collapse
 
ssimontis profile image
Scott Simontis

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.

Collapse
 
maciekchmura profile image
Maciek Chmura

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.
Value
Reference
Closure
Context
Scope
Event Loop
etc

Collapse
 
aschwin profile image
Aschwin Wesselius

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.

Collapse
 
ronaldoperes profile image
Ronaldo Peres

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!

Collapse
 
jacobmgevans profile image
Jacob Evans

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

Collapse
 
lucpattyn profile image
Mukit, Ataul

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.
dev.to/lucpattyn/basic-programming...

Collapse
 
nedyudombat profile image
Nedy Udombat

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.

Collapse
 
calebpitan profile image
Caleb Adepitan

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 🤔.

Collapse
 
tallship profile image
Bradley D. Thornton

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?

Collapse
 
peterwitham profile image
Peter Witham

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.

Collapse
 
hebaahmadsaleh profile image
HebaAhmadSaleh

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.

Collapse
 
delko654 profile image
delko654

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.

Collapse
 
sample profile image
Ian • Edited

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.

Collapse
 
shreyasht profile image
Shreyash

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.

Collapse
 
waylonwalker profile image
Waylon Walker

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.

Collapse
 
akshay5995 profile image
Akshay Ram Vignesh • Edited

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.

Collapse
 
olivierjm profile image
Olivier JM Maniraho

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 🤦🏾‍♂️

Collapse
 
edwinthinks profile image
Edwin Mak

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

Collapse
 
dvincent1337 profile image
David Vincent

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

Collapse
 
zeddotes profile image
zeddotes

this

Collapse
 
nombrekeff profile image
Keff

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

Collapse
 
alifhasnain profile image
Alif Hasnain

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

Collapse
 
rcmedeiros profile image
Rafael Medeiros • Edited

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.

Collapse
 
joshcheek profile image
Josh Cheek

There aren't correct answers, context always matters.

Collapse
 
danjconn profile image
Dan Conn

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

Collapse
 
foresthoffman profile image
Forest Hoffman

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.

Collapse
 
felipperegazio profile image
Felippe Regazio

that I was capable, that what I did at home thinking it was fun could be what would support me later. it took me a while to realize this

Collapse
 
devpato profile image
Pato • Edited

I wish I knew how smart I was before I got into coding hahaha (kidding)

Collapse
 
morales_eze profile image
EzeM

That I would love to do it

Collapse
 
iagobontempo profile image
Iago Bontempo

Don’t overthink about coding languages, don’t overthink about the stack you should learn and don’t overthink!

Collapse
 
scottishross profile image
Ross Henderson

That I can't do it all.

Collapse
 
drm317 profile image
Daniel Marlow

There's no minimum entry requirement.

Collapse
 
ozzman profile image
Ozzie Love

To plan and make a schematic of what you want it to do before writing any code.

Collapse
 
lucsan profile image
lucsan

Where the any key is on the keyboard.

Collapse
 
sapien profile image
Prateek Thapa

Programming for fun is very different than programming for a product.

Collapse
 
sarahk profile image
Sarah

Its not a dumb question .. ask away

Collapse
 
isoloi profile image
ISOLOI

My value

Collapse
 
finnanton profile image
Finn

Stop rushing so hard.
You can't get a Software Developer in 2 Days ;)

Collapse
 
trikiomar profile image
triki-omar

i think programming is like palying video games but with words to create something . it's like a mission and you want to complete it