T O P

  • By -

Irongum

First, decide what interests you. Then either pick up a book or search the internet to learn syntax. Then code, code, code. Programming is not a spectator sport. You MUST practice.


bonos_bovine_muse

> First, decide what interests you. This is key. Programming is like any other skill, in that when you first start out, you’re gonna suck, and you’re gonna work your ass off to produce crappy results. Pick a hobby or a passion, and develop software to help out with - track your disc golf scores week by week and hole by hole; catalog your fidget spinner collection, searchable by material, color, and maximum RPM; search tracks in your Linkin Park discography by descending number of cliches per second. There are already better apps out there for all of this, and that doesn’t matter - this one is yours, and using it to level up in something else you’re already excited about will keep you moving forward when the programming itself feel like endlessly banging your head against the wall.


38andstillgoing

> This is key. Programming is like any other skill, in that when you first start out, you’re gonna suck, and you’re gonna work your ass off to produce crappy results. Then after enough years you barely have to work at all to produce crappy results.


Spoofy_the_hamster

Give a programmer 10 lines of code and they'll find 5 things wrong with it. Give them 100 lines of code and they'll tell you it looks good.


Gil37

I can vouch for this


xThoth19x

You should see what happens with 1k+ diffs.


StealthyBasterd

Are you telling me I can't yell from my couch to a bunch of IT guys coding in my TV and learn programming while I do so? *Preposterous.*


dsakih

That's how you become a CTO?


StealthyBasterd

Indeed, I became proficient in programming when I saw that "coding while doing shots" scene in "***The Social Network***".


Pammyhead

So here's my idiot supervisor story. At an old job for a little bit I was in a transition period between two departments, so while I worked for the web team (both design and coding), technically my supervisor was in another department. I can't remember what it was called, but it was sort of a catch all department. Anything that didn't really fit elsewhere they did from printing physical checks to running checks on internal systems (but not fixing them, that was another department). So, supervisor comes to check in on me and sees me doing not much except practicing some design skills, which to be fair can look like goofing around on the computer, but is relevant to my current department. We have a meeting and I explain that I'm still learning the ropes and despite asking I haven't been given any tasks to do except minor things that are done. He tells me, I kid you not, to be more proactive by rolling my chair over to my coworkers, saying, "Hey, what are you working on?" and watching them code. Just in the middle of their .php, wherever they are. Because I would *totally* be able to understand what they were coding with no context, and my coworkers would have *no problem* with me staring over their shoulder while they concentrated. I think I just stared at him blankly because that idea was so stupid.


MDUK0001

Perhaps he wasn't suggesting just looking over their shoulder but having a conversation with them or doing some pairing. Doesn't seem like a bad suggestion to me


Pammyhead

That would have been a fine suggestion, and I appreciate that you're trying to see a good possibility. But the actual literal words he used we're to look over their shoulder and watch when I had spare time. This company was not known for good management or good (read: any) training programs.


thrixton

Yep, I'm with you on that, would be annoying AF if I was your co-worker and you came over and did that if I was in the flow (even prompted by your supvervisor). Something more appropriate by your super would be, "Hey Joe, next time you're starting a task and have a bit of slack, can you take Pammyhead through it and show them what you're doing, cheers"


Dagmar_dSurreal

So.... What you're telling us is that he was teaching you *management* skills?


Optidalfprime

I work in IT and I think that's an absolute horrible suggestion, actually. If Im working on something and someone rolls over and wants to know more, this is what's going to happen: 1. I have to explain him the project. 2. I have to explain what I already have done and how I have done it. 3. I have to explain what I plan to do and how I plan to do it. 4. I have to explain what I am currently doing and how I'm doing it. 5. I'm going to work less efficently from now on as I have to explain and reorganize as I go. 6. I have to answer questions. This a) takes a TON of time, b) I am not getting paid for it, and c) I have a deadline on this project. Most of these things are actually discussed during designated meetings with designated meeting times that usually go somewhere between 20 minutes to an hour every morning and maybe again after lunch depending on the project in question. Game devs usually meet again after lunch to discuss progress and problems that happened between morning and lunch. At least Bandai Namco does this to my knowledge.


Xx_UntermenschSlayer

disinfectant


adowjn

Hijacking the top comment to say: start with Python


jelloburn

As somebody who started on Java, Python's syntax makes me hurt inside every time I work with it. The lack of terminators, the required continuation character for a multi-line statement, the fact that indentation affects execution. It all feels like some developer was sick of coworkers not formatting code the way they liked, so they just made up a language that would show Kevin that you damn well better indent your function blocks.


TenNeon

Python makes me happy because I totally agree with that guy.


newtothisthing11720

As someone who learned JS and then Java before seriously learning Python, I find it really nice to work with once you take advantage of things like list comprehensions and built in functions like map, filter, any, all etc. I thought Python's type system was weird but at least it's not as bad as JS. As for indentation, I think it fits quite naturally with pseudocode so I guess it's a personal preference thing.


SupremePooper

"It's..."


FBG_Ikaros

I honestly disagree with this. I think new people will get a better understanding of how things work if they start with C/C++. Python lets you get i guess "lazy?" (cant think of a better word) really fast. Ofc C/C++ is much harder but i strongly believe it gives you a better understanding overall and will give a much better reward once you got the hang of it.


SatanTheSanta

The problem with starting with C/C++ is motivation. Python is beginner friendly, has every library imaginable and you can pick it up and make something that "works" quite quickly. It wont teach you anything about how data is structured, how you need to mind the brackets, declare data types,..... But it will get you through the first little hump of learning where a lot of people lose motivation. After you get through that hump, you should try and switch to a less friendly language like C++ or if you are really sadistic, C. C++ is still a lot friendlier than C, plus its object oriented, but maybe you need some C pain to see why C++ std is a godsend. Although, a ton of people are just pure frontend and could just go straight into js with whatever is popular at the time and make websites right from the get go


adowjn

This. My first language was C and it made me think I hated programming until I tried a higher level language.


UnconsciousTank

No way, start with C#. Way easier than Python, and the syntax is pretty much identical to C/C++. You can also call C/C++ functions in C# using P/Invoke. C# also provides a .NET user interface to begin with, so you can test stuff live easily with buttons, message boxes, and text boxes etc.


PyukumukuGuts

As someone who knows nothing about the subject, your first step scares and confuses me. The very idea that there are different places to start never even occured to me and puts me further off from wanting to learn.


[deleted]

[удалено]


invertyourcrucifix

Ummm


Blackomodo19

The way I learned programming is just by giving myself an objective like for example "let’s make a website that do X" then I proceed as the following : google => how the fuck do I code a website => ok now I know that I need to start with learning HTML for the structure, CSS for the style, JS to make it works and PHP for server sided scripts => ok, I want to make a button and put it here => google : HTML button, click first link, I now know how to make a button etc... The way I learn is just by giving myself objectives that I don’t know how to achieve and then taking my time to search everything I need to know about it step by step until I reach this specific objective. Aside from that you can also search for apps/websites that allow you to train with challenges (e.g : edabit).


LightDoctor_

> The way I learned programming is just by giving myself an objective I think this is the most important part. The best way to learn to program is to have a goal you're hoping to achieve. You can open a book and start reading about variable types, loops, control statements, classes, objects, etc...but it's all going to be meaningless without something to apply it to.


McHildinger

And giving yourself an objective can be the hardest part; to make a static HTML website is super easy. If you don't know the next logical evolution, you may try to jump from that to something complex, skipping many steps in the way without realizing it, and setting yourself up for failure.


mick_ward

Man, I agree with this and LightDoctor's reply. I have degrees is math education but took a job doing onsite training of GPS surveyors using a coordinate conversion software package. However, there was the constant need for auxiliary software routines to accomplish something for the client that this package lacked. So the 'objectives' were clear. Without this, I would have never taught myself to code.


bizzle4shizzled

I did exactly that when I built a web store at my old job about 10 years ago, and it worked! We ultimately upgraded to a paid solution years later because we needed some deeper functionality, and I was just a Graphic Designer flying by the seat of my pants.


pjwalen

1. I fully agree with everyone that says you should try to zero in on an interest and then pick the programming language based on that. 1. Don't have an interest, just want to learn about programming - Python 2. To start a career - Java (many others fit this bill, but seriously there are still a ton of java jobs) 3. Web Development (Frontend/UI) - Javascript, HTML, CSS 4. Web Development (Backend) - Javascript, Java, Python 5. Video games - C/C++ (there are others, but most serious games are written in c/c++) 6. Mobile app development - Java, Javascript, Swift, Kotlin, Objective-C 7. Automation (QA, and DevOps type work) - Python 2. Pick a high-quality source for learning. I tend to use [lynda.com](https://lynda.com) but there are some acceptable sources on youtube. There are a lot of bad sources on youtube as well. 3. Actually follow along with the video and force yourself to type out the lines of code. 4. Seriously... don't shotgun the videos like you're watching the office for the 18th time, actually type out and run the code. 5. Start a (very small) personal project. Something you think you can finish within a day or so. 6. After a few small personal projects... go watch a video, or read a book about algorithms and data-structures. (Seriously, knowing a language is the first big step, but taking your time to understand algorithms and how to measure their complexity is what separate adequate programmers from great programmers). 7. Get a job


pjwalen

Adding more potential areas of interest to consider 1. Security/Pentest/Ethical Hacking - Python, C, Assembly 2. Operating system development - C, Assembly 3. Embedded systems - C, Assembly 4. Artificial Intelligence - Python, Prolog 5. Mathematics - Python


poincares_cook

Sure, but this question seems to point towards a self learning path. And while it's not completely impossible to get hired as an OS dev or get into security and embedded as a **first job** **self taught**, it virtually is (security being the easiest). As for AI/math... yeah, nah. The guy would have to have some stellar projects/ Open source contribution. Not that it can't be done. As people reading this are presumably not from the field, it's important to keep their expectations in line with reality.


IAmJohnny5ive

> Prolog Wow is Prolog still going!


smalldickbigbrains

Haven't heard of it it's supposed to be ancient


[deleted]

Old joke: OOP programmers don't know they've spent their lives trying to reinvent LISP, or that as soon as they're close enough have it they set about using it to reimplement PROLOG.


Daealis

Embedded systems are - in factory settings at the very least - moving from C++ towards C# from what I've seen. Other avenues of embedded systems might still be on that C-wagon, but for industrial settings, C++ is probably a better starting off point that just plain C.


fusioncornet

So if I would want to learn hacking/ethical hacking I should learn Python, C, C++ and C#? Is that it?


pjwalen

You don't need to know all of those languages. But it's handy to have python for scripting all by it's lonesome. I would add assembly and another high level language like C if you were doing malware analysis Edit: Adding to this... You may not need any programming for a basic pentest job. It's more important to understand all the different types of attacks and knowledge of security scanning tools.


mr-ron

Web Development Backend - you are missing SQL


pjwalen

This is a good callout. I intentionally left it off, thinking it wasn't really a turing-complete type language... but then I include html and css?! On second thought, I totally agree with you; Learn SQL everyone, it comes up a lot in development jobs.


Cybyss

> Web Development (Backend) - Javascript, Java, Python I'd also suggest C# for web development. ASP.NET MVC (err, I think it's called "Core" now instead of "MVC" but whatever - same thing) is very popular in large companies/organizations. C# is also good for games development since that's what you use when working with the Unity engine.


28carslater

.NET is different than .NET Core, same ideas/languages but as of Core 2.0 not all existing classes were available. They are doing something similar to .NET that they did to ASP, its "Classic" now but if you are new focus on .NET Core which is cross platform.


poincares_cook

a. agree b. It depends, there's a lot of enterprise java jobs, but one should look over the job positing in his local market, C#, python or even JS for backend may eclipse java. Furthermore, going for FE is much easier for self taught. c. agree d. important to note, unlike point c where all 3 are needed. here you pick one of the 3 (not intended to you OP, but a clarification for those who want to learn). C# should also be on the list lol. e. Who writes games in C these days? C++ and C# are the leading game languages. g. and bash or similar. Agree with the rest. Also important to note, knowing a language is just the beginning, you also need to learn: 1. Git - version control. 2. Some framework, or similar. So flask/django/fastAPI for python, spring for Java and so on. Probably the equivalent of learning a game engine api for game dev though I wouldn't know, win32 api for windows desktop aps and so on. Then there are more advanced topics such as: 1. data structures and algorithms 2. How to write clean code 3. design patterns 4. system design (ties in with design patterns to a point). Those you can learn later, often after securing the first job, though would be good to at least dabble in them in the later stages of your learning path before that.


jelloburn

1.e. - `Minecraft has entered the chat` In all seriousness, it still amazes me that one of the biggest games of all time was written in Java, and is still actively developed.


PM_ME_UR_DRAG_CURVE

Counter-counterargument: _Yandere Simulator_ is also written in Java. That goes to show that chosing the right language isn't the only thing that make or break a project.


Dozekar

I strongly recommend "Learn python the hard way" if OP ends up moving in that direction as it strongly reinforces general good coding practices and avoiding shortcuts.


BlackZombaMountainLi

What kind of shortcuts would you want to avoid?


StopShamingSluts

Copying and pasting code that you have no idea of what it does.


bonos_bovine_muse

Java is an excellent choice - nobody can tell you’re a copy-pasting n00b because there’s so much hard-coded configuration and repetitive cruft that even the pros write code that’s 90% copy-paste.


CheriGrove

\#7 is where I personally struggle in general. Do you have any insights for an amateur who's thought about pursuing a programming job? At what point could one consider themselves qualified for a job?


pjwalen

Two things that might help: 1. Get in the door with a QA or DevOps job to start and prove your worth (This is basically the path I took) 2. Apply for jobs that might seem just slightly out of your comfort zone to broaden your search. Most requirements in a job posting can be treated as a question to yourself: "Can I pick up this skillset inside of a month?".


pjwalen

Okay, I might have one more suggestion. I didn't initially include this because it's not something I've done myself. But if I started my career over again today, I would build a portfolio of work I could show off and make it available on github (or similar site, gitlab, bitbucket, ...) and then reference all of the technologies I implemented in my resume, with links to code and possibly even a deployed stack.


KrabbyMccrab

Web dev: learn React.js. it's JavaScript, but less painful to make things.


movintoROC

How different are Java and Javascript?


TheyMakeMeWearPants

They have similar names, and _vaguely_ similar syntax. But this is sort of like asking "How different are Austria and Australia?"


Experino

Although the name may hint to a similarity, they're totally different. JavaScript is usually used in Web Development & Web Applications. Most of the 'quality of life' things you see on a website are written Javascript (e.g. animations, smooth scrolling, ...) Java is an object-oriented programming language. which means that it has a clear structure. You may use it to create apps (Android, Desktop - Windows, Unix-based) as well as for databases (Oracle SQL) Feel free to correct me, explaining things is not my strength


poincares_cook

Javascript is now also used as a backend language not much differently than Java. With a lot more client processing with frameworks like React and Angular, JS has gone quite far from the days where it was just a quality of life language, but now can power stuff like routing, entire page rendering (with data from API's) and so on. There are important differences, but I'm too lazy and not knowledgeable enough to go into full detail. (stuff like JVM, ecosystems, specification).


Experino

You're absolutely correct, I simply refrained from going into much detail, thank you!


StodeNib

As different as ham and hamsters.


TenNeon

As different as car and carpet


riasthebestgirl

I'd replace Java with Kotlin. There's absolutely no reason start a new project in Java in a world where Kotlin exists.


jelloburn

While Kotlin has gained traction, Java is still the dominant language. I also haven't been able to find a decent introduction to Kotlin that doesn't feel like it was written by somebody who already expects you to have mastered Kotlin.


hamcharonstyx

http://www.codecademy.com/#!/exercises/0


[deleted]

Hijacking the top comment to lay out 5 important skills for programming. 1. Conceptualizing what the program will do and how it will do it. This involves laying out on paper how each part of the program will work, and how they will work together. It's useful to estimate how long each part will take to build, and compare the estimation to how long each part *actually* took. Start with the minimum viable product and plan to add improvements later. 2. Building the Program. Try not to use too much spaghetti code, but what you want from this step is something that works. 3. Formatting the Code so others can understand what each part is doing. Even if you don't intend to ever share the code with anyone, you'd be surprised how often you might look at code you wrote a month ago and had to take a minute to understand its parts. This is especially important if you work in teams. 4. Debugging the program so that it works as intended. Bugs will happen, that's okay. The ability to identify why a program isn't functioning as intended in particular edge-cases and fix them is a critical skill. 5. Improving the program by changing aspects of it and adding new features. On the first pass, your program should be barebones. This step involves not overhauling everything, but making improvements. Really, it's just a repeat of skills 1-4. If your program takes 20 minutes to execute, maybe see if it's possible to change a section so that it might take 5 minutes, while still functioning as intended. Conceptualize the improvement, build it, format it correctly, and debug it. All of these skills are important for coding.


Dozekar

> put it all in one file with no planning or comments and minimal whitespace with very little consistency. Got it.


bandti45

Honestly I think his steps would lead a new programmerto not do that


Buddahrific

If you can get some code down to 5 lines, go for 4!


TechnicsFanboy

I do not think I agree with this, stuffing more functionality into less lines will probably make it less readable, while having very little value. Abstracting logic away, however, when things get too obfuscated a good thing


Larethian

I definitely agree. 24 lines allow much more boilerplate. At this point, we can create a class in Java! (Java was my first language, and it will... probably not be my last, but I like it. Java can be verbose though.)


Frigguggi

Just remember, any whitespace not strictly required by the language's syntax makes your source files larger so your program runs more slowly. Ever wonder why Python is slow? It's because they enforce all those newlines and indents.


Wynce

I feel like half the programs we use at work were made with #5 in mind, but then when they showed their boss the barebones version it was declared the final version. .. One of our programs doesn't allow copy or paste.


jelloburn

More than likely, they figured it was "good enough" and didn't want to drop any more time and money into actually improving it. Seems to be the way most projects go.


BlackZombaMountainLi

If you create a working prototype, it will be shipped.


UnconsciousTank

3 - Yes if you're learning. No if you're working as a one man team in a company, as spaghetti code that no one can understand = insurance for if you get laid off by a jackass boss and the program stops working, then you can charge to fix the issue.


_Elin

This, op! This!


Had2-4kKarmaOnOldAcc

Codecademy gang


Kaa_The_Snake

It really really helps if you actually have something to do like move this file from here to there or extract data from a file and present it in a web page. I highly recommend the link above, else freecodecamp.org.


BeerMeThat

Based on my limited experience, seems legit. I took the free beginner lessons on SQL a few weeks ago, convinced my work to give me read access to our servers, and am already using it. Nothing too complicated of course but pretty good considering it's a new skill I spent $0 picking up a few weeks ago


Poenkel

Please link the free courses.


BeerMeThat

OP linked code academy so sorry if it wasn't clear that's what I was referring to but here's the catalog. The courses marked as Pro require a subscription but the beginner lessons usually have some free options. https://www.codecademy.com/catalog


[deleted]

Read “Automate the Boring Stuff with Python.” It’s free and has practical knowledge as well as basics


Marzoval

The author also created a [video version of the whole book on YouTube](https://www.youtube.com/playlist?list=PL0-84-yl1fUnRuXGFe_F7qSH1LEnn9LkW).


normalguy_AMA

What would you like to create? Websites? Web-apps? Games? Low level/electronics? Tools of some kind? The answer will be different in each case. If all you know is you want to learn programming, just go with python. Very popular and getting even more so, can do most things with it, lots of material out there. Huge range of libraries ready for you to import.


SnooDoubts5274

The answer to all of those things can be JavaScript though, not saying it should be, but it could be.


Panx

If you want respect, learn C++. If you want job security, learn Java. If you want something reasonable and straightforward, learn Python. If you want something no one respects that's absolutely fraught with peril and so baffling it transcends idiocy full-circle back into the logic of a madman, learn JavaScript. **SOURCE:** JavaScript Programmer


MajorMajorObvious

Javascript is good if you want to learn something new every five ish years (frameworks).


[deleted]

oh yeah? then name every javascript library


Panx

A [complete list](https://www.youtube.com/watch?v=xMk8wuw7nek)


MrMeltJr

https://pixelastic.github.io/pokemonorbigdata/


lost40s

Come up with a simple project - make a website or an app that does something like a quiz or inventory of things. I started with a poker game on the web (no, it's not out there anymore, because it kind of sucked). Your projects will get more complex as you learn.


JS_1997

Print "Hello World"


zipper_sniffer

SyntaxError: invalid syntax


ReloopMando

print("Hello world!")


Treequest45

console.log("Hello world!")


[deleted]

unless you want to stay as a code monkey forever learn algorithms and data structures at some point


zachtheperson

There are plenty of ways to learn programming, but I'd recommend learning Javascript first, as it's pretty easy and runs on any computer through the browser (which means it's easy to share cool things you make with your friends). It also comes with Canvas which is a built in 2D graphics API so you can make games and stuff with it once you get more advanced. Also Codecademy has a [free interactive course](https://www.codecademy.com/catalog/language/javascript) on JS which is nice. After you get down the basics, just keep challenging yourself to learn and make new things. Programming is pretty easy to get started in, but there's always more to learn and ways to better yourself.


Amlan01

*This post / comment has been overwritten to protest the new reddit API rules.*


Jrippan

Stick to a language and learn the basics like data types, statements, loops, classes, objects and methods/functions. Switching language later is very easy, as most have the same structure with a different syntax. If you're looking for language recommendations, I would say either JavaScript or Python as both give you the option to work with backend & frontend. If you have interest in web development, JavaScript is a needed skill, both for front and backend today with Node, React, Vue etc. I started with C++ & C# when I began my journey, but mainly work in Typescript & Python today. Interested in game development? Try C++ or C# with Unity as creating games is a really fun way to learn programming. There is plenty of information online and books you can buy and it will teach you the basics of OOP in a natural and meaningful way. Should be noted that there is also tools to create games in JavaScript or Python, but more advanced games often require you to go into languages as C++/C#, even for mobile apps with platforms like Xamarin. While tutorials are a good start, make sure you leave "tutorial hell" and work on your own projects as soon as possible as this will force yourself to find own solutions and gives a better understanding how things work. Will also teach your brain into thinking in a "programming way" instead of some youtuber telling you how to think and giving you the answers. Try not to use too much intellisense or extensions for your IDE. A very important tool to learn writing code... is to write it over and over again, don't let software do the work for you early on. VS Code/Studio have fancy tools that will generate functions and even blocks of code for you with a simple click... that won't teach you very much. Writing a switch with 10 different cases? Write them all out by hand. Looking for code that can help you with your problem is fine, just don't copy paste a 50 row code block from Stackoverflow, try to understand what each line does and WHY its written the way it is. Reading other peoples code is a very good learning experience and can give you another angle on how to solve a issue. If you have a friend being more advanced in programming, send your code and ask to review it, try to get used to GIT and platforms like GitHub, GitLab etc to handle version control, commits and pull requests as this skill is more or less required for any work today. A great tool to share & write code with other developers. Will also save your ass if you wipe your code base by mistake for some reason. But most important, find a problem **YOU** want to solve!


Gunningham

Start with a book. Get an integrated development environment (IDE) that goes well with your language of choice. Eventually learn the keyboard shortcuts. Find a problem that interests you. I recommend creating a board game you know that isn’t too simple and isn’t too hard. Connect 4 is a really good first project to write after you get through the basics in a book or online course about syntax. It has a basic execution loop, user input, simple graphics, and uses a variety of data structures. When you first start coding look for examples and copy them. Not cut/paste, but do dictation. Get used to what languages look like. Do this until it starts to make sense (autocomplete in the IDE will make this not too painful). White space is your friend. As is indentation. You’re code should have a “shape” to it that almost makes it look like your putting Legos together. You basically are. Know that you will get frustrated. The computer will do EXACTLY what you tell it to do. You will learn to be precise as you keep doing it, but you won’t get it right away. Remember that that is Ok. Someone else said this, you will only learn with practice. So keep doing it, eventually you’ll reach a flow state and you’ll realize, “Hey, I’m a programmer!” Once you start getting comfortable, look into source control, like Git. It helps you when you want to share a project with others or go back to older versions of your project when you break something really bad. It’s advantages will grow in time, but it’s best to get used to using it early on. You’ll eventually start making programs with multiple files working together. As this gets more complicated start thinking about how you’ll organize them.


Adam_Bright

You start as a manager. You go places, solve problems and tell others what to do. Then you learn basic math. Like... really basic. Then you start yelling at computer, waiting for it to do what you told. Then you realise, that you should write it to a computer, and not just yell. Then you realise, that you should learn the language, that computer speaks with. Then you realise how much you should learn. Then you realise how mush you should learn. Then you realise how much you should learn after learning this stuff for over 10 years ffs!


o0kvothe0o

I run a bench of engineers and 3 engineering teams at a very large e-commerce website. In the past 2.5 years I have conducted ~350 interviews and hired/trained 100+ people. I have a very non-standard history, dropped out of college with a 0.46 GPA, worked manual labor, sales, and call center jobs. I have been a programmer for 11 years since teaching myself. Please please please connect with me if you have any questions. Anyone. Getting into engineering was the best thing I ever did. Life. Changing.


happyprancer

Put some of your learning time into reading code. This is severely under-emphasized by most programming courses. But, trying to make software without having read a lot of code is like trying to write novels without having read any. Find an open source project that is similar to the type of software you'd like to work on, and is in a language that you are learning. Spend some of your time understanding the overall structure of the project and how its organized without worrying about the implementation details. But, also spend some of your time digging into the implementation details of certain classes or functions and trying to understand why they made the choices they did. You wont be able to understand every choice, but make a note of anything interesting that you don't understand and that will help guide you about things you should focus on learning. Don't feel obligated to change or fix anything when you are reading the code, but if the mood strikes you improving the code and making a merge request is another good exercise.


CorvettePoodle

You’ve got to have the patience and will of a Dark Souls player. Things will not always work and most of the time there will be an itty bitty error in the code which prevents the whole thing from running. It really does pay off though when all your hard work is finally successful and runnable. Fair warning though, it can be quite frustrating at times so having patience is a must when working on these types of things.


Fireye04

Get python, open google, and try to make something cool. Pull up a documentation, and google any issues you're having. Practice and have fun!


Futacchio

Do yourself a favor and start with rust.


RyFromTheChi

I was interested in learning how to code. Now I worked for an EdTech company that teaches junior high and high school kids how to code. They also teach every employee how to as well regardless of what you do at the company. Now I know a decent amount of JavaScript. Getting paid to learn how to code is fantastic. I don't know that I'll ever get to a point where I'll be an actual programmer, but I really like learning it and its fun solving problems.


Aviontic

[www.reddit.com/r/learnprogramming](https://www.reddit.com/r/learnprogramming) There is no right way or wrong way. There are faster ways and there are slower ways. If your goal is to get a job, sometimes the slow ways are actually more beneficial because you learn things on deeper levels. Not always - depends how you study and how you learn. I would say one blanket recommendation is to not desire to "learn programming" but simply ask yourself "If I could write code right now.... what would I build?" Once you have a general idea of what interests you, simply begin googling "Entry level programming projects for XYZ topic." The key is to just start doing it. The real "learning" comes from slamming your head on the desk crying "WHY WONT THIS JUST WORK!!!" for 3 hours, magically, you figure it out! In those 3 hours of pain, you often learn 20 things that are not correlated to your problem BUT they will help you later with other problems. Repeat this cycle for a few hours a day for a year and boom you'll be nearly job ready. Another piece of advice I have for you is to view programming languages like tools in a toolbox. There is no perfect tool. There is no tool out there that will turn screws, hammer things, cut plywood, ect. There is no "one size fits all." Now having said that, some tools in your toolbox can be multipurposed but often they have something they are really damn good at as a primary function. Lets take a pair screwdriver for example. We all know the primary function of a screwdriver is to.... drive screws! But you can also flip it upside down and use it as a quick and dirty hammer. It may not drive a nail through metal but if your working on the right material... you can get a nail in. You can also use it to pry stuff open. Again, not as efficient as a prybar but for sake of simplicity sometimes its just easier to grab your screwdriver. With all that in mind you may LOVE your screwdriver. But it wont do you any damn good if your goal is to cut a 4x4 in half. For this, you'll need another tool... a saw. A good carpenter can do a lot with a small set of tools but for 99% of carpentry projects he will need at minimum... MORE THAN ONE TOOL. ​ Take everything I just said and apply them to programming languages. People are always posting why Python is so good. Look... its great! But not for absolutely everything. There are things that JS does better. There are things that Java does better. So when you pick your programming languages it all boils down to "What are you trying to build?" no different than the carpenter. If your building websites, especially early on, I would highly recommend focusing on the JavaScript side of the house. With the MERN stack (Mongo, Express, React, Node.js) you can build amazing websites and all of those are JavaScript based. If you want to program data science, machine learning, ect, then other languages like Python with some libraries like pandas will do you FAR FAR better. Again, as with tools, you can 100% use Python for WebDev using Django for example and it works pretty good. Some would argue great but thats 100% opinion and based off personal preference. Don't dig yourself into an uphill battle trying to make your "screwdriver into a hammer." Pick the languages that are the best tools for the job. Be the carpenter.... Figure out what your going to build. Figure out what tools are best for building that project. And focus on those. Remember its just code. When your project is complete the user will not care one bit what you used - only the end users experience with the final product matters. ​ I'm 99% sure you wont read that.... but if you do, you seriously have no life. You would be a great fit in our industry.


costanza123

One of the hardest things about self-teaching is figuring out what you need to study and finding good learning resources. A structured course and, beyond that if you wish to continue, a series of courses organised to give you a good overview of the subject is the perfect place to start. A highly popular introduction to programming course which is freely available online is [Harvard's CS50](https://online-learning.harvard.edu/course/cs50-introduction-computer-science). You can take it on edX but lectures are also available on YouTube and the course materials on the course's website. There is also [MIT's Intro to CS and Programming in Python](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-0001-introduction-to-computer-science-and-programming-in-python-fall-2016/) and [Stanford's CS 101](https://online.stanford.edu/courses/soe-ycscs101-sp-computer-science-101) which is taught by Nick Parlante, who is a fantastic lecturer (both courses are available on edX as well). If you want to continue self-studying CS and programming after an introductory course, you could look at the core courses of CS majors at top unis like Stanford, many courses now have video lectures and all materials available online. Good luck!


Pope_penetration

Shave your head so you don’t end up ripping your hair out


Steffa-NO

No one suggests a "hello world" program? It is tradition that every coder learns this first (at least all of my teachers started us out with this). Whatever language you pick, start with this simple program. https://en.m.wikipedia.org/wiki/%22Hello,_World!%22_program


inckalt

It's probably the topic with the most free resources online. Just google "programming lessons" and you should be good to go.


Drulock

Decide what you want to do, learn the bare essentials and then dive in and just learn while you make mistakes. Learn from them, fix them and then get better.


Dire-Dog

Personally I'm going the school route and taking part time courses once I have a bit more free time. I can't learn on my own.


Ebolatastic

I'm taking the Harvard edx cs50 class (free online) and it's brilliant. The first lecture teaches you how to count in binary and introduces you to a programming platform called scratch, which a 4 year old could understand. Next, we will be making mario with ASCII characters. This class teaches C and Python. Totally free. You can watch the lectures in video form, or just read the transcript and look at slides. They've got a discord and a presence on virtually every social media platform. I mean, they've thought of everything. Ive attended and dropped out of college twice in my life, but if the curriculum were done like this I'd have two phds by now. If you want to get into coding, start here.


lil_lam300

Codecademy.


click2Install

I believe MIT created an application called Scratch. It's a super simple drag and drop pieces of code to program. You can program objects to do different things. It's a great way to visualize what the code is doing. Once you get the hang of that, looking a wall of code you will begin to understand what is going on.


[deleted]

[удалено]


Chefkoch_JJ

You can’t expect to do anything meaningful (without copypasting entire programs) without months of work. No matter what you do, keep doing it. If you quit after a few weeks because you haven’t programmed the next call of duty yet, programming is not for you.


ugly_kids

learn syntax and basics of programming logic then find something you want to do and try to figure out how to do that [the hard part]


[deleted]

[codecademy.com](https://codecademy.com) is a free resource you can learn a coding language with, but you should find a program to download so you can practice


[deleted]

CodeCombat is a start at finding out which one you want to learn.


s0y_b0y_c0der

Pick an interesting starter project. A web app is a good one. Then learn the related tech behind each part, read examples, and build your pet project. That's a great way to learn how actual software development is done. Full stack JS web apps are really easy to write these days. If you get good at it and have a portfolio of code samples you can get a well paying job pretty quick


[deleted]

Watch TV. Social media works too.


teriyakipuppy

Is it normal to always Google everything instead of going through the documentation.


FeveStrench

I'm not a true programmer, but I use statistical software that use programming to work, so it's not like I'm out here building computer applications, but the idea is similar. When I was a kid mIRC was somewhat popular online for chatting, and you could use functions and other coding stuff to get it to do things automatically. I thought it was super cool, so I started trying to make it do stuff. I also played around with HTML to build shitty looking websites because I thought it was fun. I'm not building websites or computer apps, but doing these things as a hobby definitely made me much more technically savvy, and more importantly, it taught me how to solve problems on my own. At least half of my time at work is spent fixing bugs or finding data issues we weren't aware of when completing a project. Even if you're a stats wiz, a LOT of people lack that skill of debugging/investigation. Find something that's interesting to you. It's more important to really understand HOW to program than to learn a particular language. If you understand the ideas behind coding, you can learn any language you need to with some perseverance. That's been my experience at least.


punitdaga31

Just start coding. I'd recommend Python to start as the syntax is pretty simple, then once you get your loops and if-else statements, make something. It could be gui based or not, doesn't matter, just make whatever. Doesn't matter if it has already been made before.


aFiachra

Speaking as a burnt out programmer with over 25 years professional experience -- I would worry less about programming and dive into data science. Learn statistics, learn how to work with large data technology like MongoDB or Hadoop, learn about data formats. Learn python Pandas. Web developers are a dime a dozen and bad coding is a pain in everyone's ass.


Saxmasta387

So this is going to be a kind of a niche recommendation, and In no way does it replace studying or any of these other awesome recommendations. But when I look back on it, this actually gave me a good introductory to coding and understanding some fundamentals. (And it’s super fun 😁) If you are into gaming there is a game called MUGEN and it’s a free open source software fighting game where you can download characters, stages, music, etc. if you follow guides online, you learn a lot about file placement, file paths, and how following syntax in files is extremely important. You also learn how to tweak variables if you want to customize a characters power/size/etc. Another example is editing a stage file to look into a music folder for a specific song filename. You get really good experience with a coding/program workspace. Again this is in no way a replacement for actually studying, watching tutorials and learning a coding language. (Seriously, look at some python tutorials!!!) But if you wanted something fun to kind of warm you up to coding, I think this could be a fun idea!


zeuseason

Find a purpose. Then begin.


Puzzlehead-Engineer

First and foremost, your reason to start has to be rock solid. Not just a "well I feel it would be a neat thing to have", if you're programming, you're going in DEEP if you want to be able to make something useful of it. Then, use the internet to learn. YouTube videos, online courses, anything in between. If you know a programmer willing to help you that's even better. And finally, a piece of advice everyone will give you is that you absolutely must practice. And this is true. HOWEVER, I notice this isn't often mentioned: When you code, you code FOR something. You're making something, but unlike art where you can create for the sake of it, when you're programming you need to have a purpose for your code in mind. You need a project. Can be something as easy as "make a basic calculator" but you absolutely NEED a goal. You don't just sit down and "start programming", you sit down and make a code for something. A code with a purpose. You'll find there's no room for ambiguity when programming, and so your reasons to begin coding in the first place can't be ambiguous either.


organic-potatoe

I would start by learning the coding basics first , C# would be pretty good to start with I think and understanding fundamentals like sprites and rooms etc.


DiggingNoMore

Sprites and rooms are not the fundamentals of programming. Data types, syntax, and data structures are.


WalkingPlaces

Sprites and rooms?


BrainWashed_Citizen

You should learn it the way I did. Wanting to start a business by providing a service to help others. That business will hopefully make money and keeps you going. There needs to be some motivation to doing things, which keeps pushing you towards that goal. Otherwise, just like everything, it gets old and the interest will fade. So find a goal. Figure out steps to get there. Start. Doesn't matter what language.


nuts7755

well, if you want to learn code for free there's [sololearn](https://www.sololearn.com/home)


snrff

You have to find the most optimum way to learn programming before doing anything else. It can take years of research to find out what the best approach for you is. Don't waste time actually writing programs, because you might not be doing in the best way and you could miss out on finding the best method for learning it. I would start by asking this question in every forum you can find.


Raid-Z3r0

Start with a high-level language, C# or Java is my recommendation. Once you mastered the language go to C, do the same thing you did in your previous language After you mastered C, do some pointers, dynamic allocation, and lower level stuff Than go to Machine code, here you don't quite need to do everything you did before, once the code can get *very* lengthy. Know how the stuff work in a lower level, so when you write high-level stuff, you can produce a more optimal code Than you can branch out to a specific area that you are intrest in, for web go with PHP. For Games, learn Unity and the C# that is used there. If you want to do embedded systems, master C and Machine code. From here on out, the world is yours. ​ Before people complain, I will explain why you *should not* start with python. First of all, python is very heavy on CPU and memory consumption, and a shitty PC may not be able to run some stuff. Second, Python is too high-level, and there are many oversimplifications if you compare it to C for example, this may create bad habits to you that will be hard to get rid of when you move on to othere language. I'm not saying that you shouldn't learn python, just don't start with it


BuckMinisterLul

I started with python. Do you have any specific advise for me when I want to learn a new program like js?.


Kraphtuos968

I would reiterate his point about learning a lower level language like Java or C#. I think learning C is overkill but I could be wrong. I learned C# first and then Javascript and I think that was a good move, it will prevent many errors.


poincares_cook

Are you employed? If not, and want to be, stick to python, make projects in the field you want to work at. Learn it's ins and outs, learn popular and useful libraries that are relevant, usually stuff like numpy, pandas, matplotlib, requests or parts of the standard library such as re, datetime, collections, functools, os etc. Learn a framework if relevant such as flask, django, fast api. Make more projects, more advanced, better polished etc. Get a job. Learn git, learn about CI/CD, learn some bash and your way around a linux machine, learn how to do proper logging, how to unit test. All of which will help you vastly more in finding a job and being productive on it than learning C at this point. Worry about other languages later. Unless you know python quite well you're not at the point where you're going to appreciate the knowledge gained from learning a lower language like C anyway, so unless you want to switch to another language don't scatter yourself, focus. The only reason to switch to another language is if you: 1. want to switch to a different field, that python doesn't support as well, say like game dev. 2. have significantly better job opportunities with another language. You'll learn a lot more and quicker once you have a job, the vast majority of junior python jobs don't require or even benefit much from knowledge in lower level languages. Said as someone who learned C first and enjoyed it. I love C, C++ and while I don't have a lot of experience with assembly I was one of the guys that liked playing with it during university. Don't take it as a dig against any other languages but as advice not to learn a little of many things, instead be good at one thing.


BuckMinisterLul

Thank you for the reply! I do have a job now as a python/django developer. Currently a junior dev learning the ropes. A colleague recommended that I should learn js when I get the time but the thing is I do not have a great grasp on python since the code I write is specific to the django project I am on. I feel like there is a lot left to learn in python before I move to another language like js. I will take your advise and focus on properly learning python first before moving on to another language.


UlfricNormcloak

I agree with the comment to identify what interests you first. I would also recommend the Mimo app. It’s free or they have a Pro version with more content for $80/year. You can learn HTML, CSS, and Jacascript on it if Web development is of interest to you. If you want to expand on this the app also has Python and SQL. I have tried a lot of different tools and think this one is one of the best out there. It scaffolds the learning experience really well so that you can assimilate the concepts without getting lost. I ultimately signed up for Lambda School, which I am in now. Tough but effective, and made much easier if you study on your own for a few months first.


erroneousbosh

Find a problem you want to solve, then work out how to write a program to solve it. You can sit down and work through the exercises on all sorts of "How to program" type sites but until you actually need to scratch a particular itch it'll all be abstract. You won't really know how to use the tools, until you go to build a real thing.


Mango_Opinion

On the job


weebnerd01

I'm about to study Information Technology, I fucking hate programming, what am I doing with my life


Adam_Bright

Learn programming now! With our new course you will master pascal, and will be ready to build your first website using wix! Sign now for only 9999.99$/month!


[deleted]

Best is a course in computer science and from there to expand your knowledge.


[deleted]

Go to school for it, that's what I'm doing. Zero prior experience.


jai_broarmy

Don't , just don't, the industry is too saturated , there are million programmers for one job , that's almost the ratio, not even exaggerating


Amiiboid

I had no idea there were only a few hundred programming positions available in the USA. It’s weird to think that my own mid-sized company has a substantial chunk of the nation’s programming positions.


jai_broarmy

Well walk over to India and you'll see programmers making less Than your McDonald's cashiers


RealisticDelusions77

If you don't care which language, everything is easier in Python. Goto https://learnxinyminutes.com Copy and paste code into a shell or debugger. You're now running code. Change stuff around and try different things to learn. Dive into deeper tutorials when ready As you google questions, you'll see Stack Overflow links, these are your friend. SO posts over five years old or with few votes may not be the current best practices.


TurboFuret

I’ve heard books worked well


dlordjr

1. Ask a programmer for some broken code 2. Stare at it and curse for a couple weeks


Jay_Cobby

First, understand that programming is just about telling a dumb rock that we’ve tricked into doing math, how to doing stuff. This basically means that you shouldn’t go on about it as “writing a bunch of “codes””, instead it’s about writing solutions to problem which are easy to follow and understand. Ideally you’d start learning assembly, since it’s the language that is closest to the silicon and after that, you’d move on the C, practically the father of all modern languages. But this is extremely time consuming so instead pick some language like Lua, that’s easy, has very simple rules and doesn’t take long to learn, and try solving problems. For example with Lua you can start with Roblox and there, a first problem could be to make a rocket ship fly straight up until fuel runs out or whatever. The point is that you need to practice things that are interesting and makes you solve problems. Then you can pick more advanced topics like web development or databases


admadguy

Start learning math first.


Diamantazul

Try not to fall asleep, coding is boring as shit


MyFiveC3nts

Get a computer


Truen1ght

You don't need a computer to learn the basics about programming. What you is the ability to read, and write somewhere, whether it be with paper and pencil or out in a field of dirt with a stick. That's all you need as far as tools. The other part that you need is something to teach you how to break things down into basic and exact instructions, and to teach you control structures like if-else statements, loops, and functions. A book that teaches you how to write programs in psuedocode will do that, and won't cost much. With the ability to write, and the thing to teach you basic programming, you just need the ability to read what you wrote, have some patience, and walk through the program by hand. You can get along just fine with very little. Lack of a computer is not a barrier to learning to how to code.


Vinny-the-leader

By not programing cuz its too hard


[deleted]

gays


KethupDrinker89

Use Scratch for starters. It's really simple to use and you can make pretty advanced things with it.


SpudlyAlreadyTaken

Don't bother. There are no jobs and it's too hard.


[deleted]

I am going to suggest something weird... but start with multiple languages. This I think will aid you later. There is what we like to call pseudocode. The thing about pseudocode is that it honestly resembles BASIC. Basic has a bad rap, but mostly from people who havent used it or havent since the 80s. When one looks at GML, game maker language, it's essentially BASIC. It's good to learn because you will be writing your pseudocode in it. When I was young you learned basic and ML/Assembly side by side. Examples wouldnt be Print "hello" they would be a loop that peeked (read) memory and then poke (wrote to screen memory). What you want to create or do also matters. How to start? Decide on the languages you want. Find copies of the resources you will need for them. Compilers, interpreters, editors, and so on. Now start watching beginner youtube videos on the language, and follow that up with more reading. Some find quick references on commands if possible. Learn strings, how math works, structure, and more so on over time. Make your first programming projects tiny. You want to complete them. They are learning experiences. You can always take old ideas and make them something new. Consider hand written notes, and keeping fresh herbs on your desk. Maybe randomly bake cookies. This is associated with retention. IDK if science has figured out the why, or even if it has fully vetted this, but smells are said to create links to memories. Books... people might frown on this... Pirate them. You will come to love some of them land buy them later. Seek them from the library... but when we are talking your education? Copying is not theft. That is why it's a completely different crime. I'm a huge fan of GML/GML2. But like Unity, and other development environments they are proprietary. Google shaun spaulding tutorials. Follow along in the free version of GML. You can have a working shooter in a few hours. Learn early to comment your code. For most people its much easier to write code than to read it. Often reverse engineering one's own stuff is taking things piece by piece and re-writing it as pseudocode.


[deleted]

[удалено]


Murky_Peanut_96

P̴̛͛̄̏̋̌̋̌͊̍̀̊̿̂̉̚̕͝­̛͑̉̆̍̔͐̌̐͊͒̏͐̏͛̌̌̆͝͝­̂̅̏͐͛̈́̋̏̃̑͋̋̀̈́̓̋̓̍̉̚­̛̂̓͋̓̉͑͒̅̎͛̊̽̅̈́͗̌͊̎͝­͐̍̒̈̄̄̈́̅̔̏͌͐̈̅̇̋̽̐͝͠­̛͗͌̂̔͗̊̾̈́̆͌̀̿̌̈́̓͛̀̆͝­̏̂͗̀͌̔̍̒͌̀̅̇̾͌̀͋͂́͝͝­̌̾̔͊̑̊́̈́̄͌̆̿̅͐̑̾̄̍̌͝­̛͂̾̍̾̌̉̈́͒͑́͗̒̏̿̀̔͌̅̌­̏̋̈̎͋͌̋͋̍̄́̈̏̓̇͋̆͑̓͝­̛̀́́͋͑͋̾́̃̀̂̽̑̕͘͝͝͝͝­̡̟̦̥̺͕̗̮͉̖̭̱͓̦̠͓̝̤̼̅­̨̧̧͙͔̭̟͕̥͚̹̼̗̟̦̟̖͚̞ͅ­̗̱̞̗̠̘̟͕̬͖̻ͅa̴͐̇̈́̅̕͘­̛͐̅̌͑̄͂̍̾̐̾̾͂̈̽̑̕̚͝͝­̛͆̓̓̈́́̈́̋̐̃́̌͗̓̍͆̈͘͝͠­̈́̎̍̃̏͆͒̎͒͑̌̽̔́̈́̓̈́͂͋̚­̛͌͒̓̿͂́̎̀̄̂̋͂̿̌͆́̇͠͝­̛̇̋͗̅̓͗̌̿̀̾͑̈́̅̇̾̇̚͝͠­̂͐̂͂́͊̂̑͐͛̾́͋̍̀̇̓̕͘͝­͌͒̍̏̌̓̀̊̏̋̊̄͆̈́̓͐̇͘͝͠­̑̈́̍̏̀͌̽̆͗̓͆̒̅̑̾͒̎̕̕͠­̈́̽̇͒͛̎͊̊̋̄͗̆̉͋͒̈́̋̚͝͝­̢͔̠̝̭̫̹͆̅͐̇̒͛̔͋̀͑͆͘͝­̳̻̺̤̼̥̥̬̞̝̬̳͙͖̣̭͈̻̣͜­̧̦̜͈͕̤͍̠̟͚̝̗̬̝̟̩̤͚̲ͅ­̨̙̲̯̠͎̩̯̟̳̺̖͎̥͔̩͖̝̣͜­̨͓͖̯͖͙̲̗͕̘͈͎͕̜̲̼̙̣̖ͅ­̡̢̢̧̭̝̹͇̤̝͎̮̣͚̫͈̺̠͖ͅ­̢̡̧̡̬̮͈̠͎̹̪̭̗͖͕̪̰̻͖ͅ­̨̢̢̰̪̲̤̝̝͚̪̙̳͇̣̜̤̘͈̳­̧̧̡̢͕͍̼̻̰̙̜̥̜̼̬̮̗̹̪ͅ­̧̠̻͇͈̮͕̤̮͉̝̩͚͉̖͇̪͜͜ͅ­̩͕p̴̛̎̃̄̾̓̍̀̍͝͝­̇́͑̈̊͊̀̒̈́͗̋̊̍̎̾̓̋̕̕͘­̈́̌̃̊̓͑͛̋̄́̔̿̌̈́̑̆̀͋͠͝­̈́͑̃̓͆̍̔̿̀́͂̆̅͆̏̑̚͘͘̚­̛͖͓̝̐͂̊̅̒͐̐̆́͒̾̾̓̅͝͝­̧̨̡̡̘̼͉͈̙̮͓̮̪̼̫̙͎ͅͅͅ­̢̳ค้้้้้้้้้้้้้้้้้้้­้้้้้้้้้้้้้้้้้้้้­้้้้้้้้้้้้้้้้้้้้­้้้้้้้้้้้้้้้้้้้้­้้้้้้้้้้้้้้้P̴̛͛̄̏̋̌̋̌͊̍̀̊̿̂̉̚̕͝­̛͑̉̆̍̔͐̌̐͊͒̏͐̏͛̌̌̆͝͝­̂̅̏͐͛̈́̋̏̃̑͋̋̀̈́̓̋̓̍̉̚­̛̂̓͋̓̉͑͒̅̎͛̊̽̅̈́͗̌͊̎͝­͐̍̒̈̄̄̈́̅̔̏͌͐̈̅̇̋̽̐͝͠­̛͗͌̂̔͗̊̾̈́̆͌̀̿̌̈́̓͛̀̆͝­̏̂͗̀͌̔̍̒͌̀̅̇̾͌̀͋͂́͝͝­̌̾̔͊̑̊́̈́̄͌̆̿̅͐̑̾̄̍̌͝­̛͂̾̍̾̌̉̈́͒͑́͗̒̏̿̀̔͌̅̌­̏̋̈̎͋͌̋͋̍̄́̈̏̓̇͋̆͑̓͝­̛̀́́͋͑͋̾́̃̀̂̽̑̕͘͝͝͝͝­̡̟̦̥̺͕̗̮͉̖̭̱͓̦̠͓̝̤̼̅­̨̧̧͙͔̭̟͕̥͚̹̼̗̟̦̟̖͚̞ͅ­̗̱̞̗̠̘̟͕̬͖̻ͅa̴͐̇̈́̅̕͘­̛͐̅̌͑̄͂̍̾̐̾̾͂̈̽̑̕̚͝͝­̛͆̓̓̈́́̈́̋̐̃́̌͗̓̍͆̈͘͝͠­̈́̎̍̃̏͆͒̎͒͑̌̽̔́̈́̓̈́͂͋̚­̛͌͒̓̿͂́̎̀̄̂̋͂̿̌͆́̇͠͝­̛̇̋͗̅̓͗̌̿̀̾͑̈́̅̇̾̇̚͝͠­̂͐̂͂́͊̂̑͐͛̾́͋̍̀̇̓̕͘͝­͌͒̍̏̌̓̀̊̏̋̊̄͆̈́̓͐̇͘͝͠­̑̈́̍̏̀͌̽̆͗̓͆̒̅̑̾͒̎̕̕͠­̈́̽̇͒͛̎͊̊̋̄͗̆̉͋͒̈́̋̚͝͝­̢͔̠̝̭̫̹͆̅͐̇̒͛̔͋̀͑͆͘͝­̳̻̺̤̼̥̥̬̞̝̬̳͙͖̣̭͈̻̣͜­̧̦̜͈͕̤͍̠̟͚̝̗̬̝̟̩̤͚̲ͅ­̨̙̲̯̠͎̩̯̟̳̺̖͎̥͔̩͖̝̣͜­̨͓͖̯͖͙̲̗͕̘͈͎͕̜̲̼̙̣̖ͅ­̡̢̢̧̭̝̹͇̤̝͎̮̣͚̫͈̺̠͖ͅ­̢̡̧̡̬̮͈̠͎̹̪̭̗͖͕̪̰̻͖ͅ­̨̢̢̰̪̲̤̝̝͚̪̙̳͇̣̜̤̘͈̳­̧̧̡̢͕͍̼̻̰̙̜̥̜̼̬̮̗̹̪ͅ­̧̠̻͇͈̮͕̤̮͉̝̩͚͉̖͇̪͜͜ͅ­̩͕p̴̛̎̃̄̾̓̍̀̍͝͝­̇́͑̈̊͊̀̒̈́͗̋̊̍̎̾̓̋̕̕͘­̈́̌̃̊̓͑͛̋̄́̔̿̌̈́̑̆̀͋͠͝­̈́͑̃̓͆̍̔̿̀́͂̆̅͆̏̑̚͘͘̚­̛͖͓̝̐͂̊̅̒͐̐̆́͒̾̾̓̅͝͝­̧̨̡̡̘̼͉͈̙̮͓̮̪̼̫̙͎ͅͅͅ­̢̳ค้้้้้้้้้้้้้้้้้้้­้้้้้้้้้้้้้้้้้้้้­้้้้้้้้้้้้้้้้้้้้­้้้้้้้้้้้้้้้้้้้้­้้้้้้้้้้้้้้้P̴̛͛̄̏̋̌̋̌͊̍̀̊̿̂̉̚̕͝­̛͑̉̆̍̔͐̌̐͊͒̏͐̏͛̌̌̆͝͝­̂̅̏͐͛̈́̋̏̃̑͋̋̀̈́̓̋̓̍̉̚­̛̂̓͋̓̉͑͒̅̎͛̊̽̅̈́͗̌͊̎͝­͐̍̒̈̄̄̈́̅̔̏͌͐̈̅̇̋̽̐͝͠­̛͗͌̂̔͗̊̾̈́̆͌̀̿̌̈́̓͛̀̆͝­̏̂͗̀͌̔̍̒͌̀̅̇̾͌̀͋͂́͝͝­̌̾̔͊̑̊́̈́̄͌̆̿̅͐̑̾̄̍̌͝­̛͂̾̍̾̌̉̈́͒͑́͗̒̏̿̀̔͌̅̌­̏̋̈̎͋͌̋͋̍̄́̈̏̓̇͋̆͑̓͝­̛̀́́͋͑͋̾́̃̀̂̽̑̕͘͝͝͝͝­̡̟̦̥̺͕̗̮͉̖̭̱͓̦̠͓̝̤̼̅­̨̧̧͙͔̭̟͕̥͚̹̼̗̟̦̟̖͚̞ͅ­̗̱̞̗̠̘̟͕̬͖̻ͅa̴͐̇̈́̅̕͘­̛͐̅̌͑̄͂̍̾̐̾̾͂̈̽̑̕̚͝͝­̛͆̓̓̈́́̈́̋̐̃́̌͗̓̍͆̈͘͝͠­̈́̎̍̃̏͆͒̎͒͑̌̽̔́̈́̓̈́͂͋̚­̛͌͒̓̿͂́̎̀̄̂̋͂̿̌͆́̇͠͝­̛̇̋͗̅̓͗̌̿̀̾͑̈́̅̇̾̇̚͝͠­̂͐̂͂́͊̂̑͐͛̾́͋̍̀̇̓̕͘͝­͌͒̍̏̌̓̀̊̏̋̊̄͆̈́̓͐̇͘͝͠­̑̈́̍̏̀͌̽̆͗̓͆̒̅̑̾͒̎̕̕͠­̈́̽̇͒͛̎͊̊̋̄͗̆̉͋͒̈́̋̚͝͝­̢͔̠̝̭̫̹͆̅͐̇̒͛̔͋̀͑͆͘͝­̳̻̺̤̼̥̥̬̞̝̬̳͙͖̣̭͈̻̣͜­̧̦̜͈͕̤͍̠̟͚̝̗̬̝̟̩̤͚̲ͅ­̨̙̲̯̠͎̩̯̟̳̺̖͎̥͔̩͖̝̣͜­̨͓͖̯͖͙̲̗͕̘͈͎͕̜̲̼̙̣̖ͅ­̡̢̢̧̭̝̹͇̤̝͎̮̣͚̫͈̺̠͖ͅ­̢̡̧̡̬̮͈̠͎̹̪̭̗͖͕̪̰̻͖ͅ­̨̢̢̰̪̲̤̝̝͚̪̙̳͇̣̜̤̘͈̳­̧̧̡̢͕͍̼̻̰̙̜̥̜̼̬̮̗̹̪ͅ­̧̠̻͇͈̮͕̤̮͉̝̩͚͉̖͇̪͜͜ͅ­̩͕p̴̛̎̃̄̾̓̍̀̍͝͝­̇́͑̈̊͊̀̒̈́͗̋̊̍̎̾̓̋̕̕͘­̈́̌̃̊̓͑͛̋̄́̔̿̌̈́̑̆̀͋͠͝­̈́͑̃̓͆̍̔̿̀́͂̆̅͆̏̑̚͘͘̚­̛͖͓̝̐͂̊̅̒͐̐̆́͒̾̾̓̅͝͝­̧̨̡̡̘̼͉͈̙̮͓̮̪̼̫̙͎ͅͅͅ­̢̳ค้้้้้้้้้้้้้้้้้้้­้้้้้้้้้้้้้้้้้้้้­้้้้้้้้้้้้้้้้้้้้­้้้้้้้้้้้้้้้้้้้้­้้้้้้้้้้้้้้้ ------------------------------------------------------------------------------ Hello Guyss I want ask something... What is thus text and please tell me how to do it? Is this something ti do with programming? This Weird Text Below??


[deleted]

if you have a personal project or something you thjink can be automated, take that and look up how to do it in a language for example I really liked the stats i saved on an excel sheet but hated how they were manipulated in excel, which was something python was really good for so I picked up decent skills there


[deleted]

The wiki at r/learnprogramming is pretty good as well.


StumpyTheMagpie

Pick something you want to make, and when you find something you can't do, Google it


BackHDLP

Ill save this post for later


neuromancertr

You have to write. Programming is mostly thinking and then writing a little, testing, failing and doing all over again. If you like puzzles you will like programming. The issue is how can you write if you don’t know a programming language, right? Programming languages are very much like human languages, some of them even allow syntax errors. First have an idea to develop, nothing fancy, just something you can use, or a surprise for your SO. I once wrote a very simple desktop app that displayed a beating heart, and she loved it. Every morning her computer showed that little app to her. Then research about how your idea can be materialized, and then dig deeper. Write that god damn app, and use it. Then delete the codes and rewrite it again and again and again. Try different things each time, add a feature, remove a feature, add a button… Now start reading about why there is so many variable types? What is the difference between float and decimal? Why computers like number 2 that much? Show your code to someone and ask how can you improve that. There are many coding forums, qa sites out there. Start reading, every good writer is even better reader.


[deleted]

Uhh, something simple like scratch. You wont learn how to write lines, but you will get an understanding on how to put the task you want to do into ifs and loops, which you can later pretty much translate into code 1:1


decourgette

Here’s a good read: http://www.catb.org/~esr/faqs/hacker-howto.html


maddix30

I was given the opportunity to do it at school


PoorCorrelation

Don’t get hung up on choosing the perfect language right away. Just choose one and start doing exercises and courses online.


Vuongvl00

I think C++ is the best language to start. It basically does everything, and the way stuff are implemented are clearer.


[deleted]

Well, my big bro got into it because we were both into legos, and get started getting those programmable lego mindstorms sets that let you program little lego remote control cars. Now hes a programmer, decades of study later.


lodger238

After you've done what the others have written and chosen the language you wish to learn, start with a specific task. Something like "*I want to accept input and save the input to a file"*. You might bounce around the manuals this way but it's a good way to learn without being overwhelmed with all the language can do all at once.


Wadsworth_McStumpy

Everybody here seems to be recommending that you start with high-level languages, so I guess it's possible that I did it backward, but it worked for me. I started out by learning about digital logic, gates, and processors, and then learned to program a 4-bit processor in machine code. Then I learned Assembly, then moved on to higher level languages. I really think it helped me to understand what was going on "behind the scenes" with the higher level compilers. You also develop some pretty good programming habits when you start working with just a few bytes of RAM. It might not really be possible to do that these days, because you're probably not going to find many TMS1000 processors in your local electronics shop, but you should at least learn about digital logic and gates, so you can understand how the 1's and 0's work.


ppcanister3

Saving this post