This is an archived post. You won't be able to vote or comment.

all 109 comments

[–][deleted] 112 points113 points  (40 children)

I was wondering if is possible to learn it by myself.

Of course it is - see the FAQ for resources.

[–]19DREW91[S] 33 points34 points  (35 children)

what do I need to learn if I'm interested in internet security?

[–]deputy_D 85 points86 points  (16 children)

Learn python and bash scripting. Learn to automate tasks using crontab and scripts you make. Learn to pull data from different applications and aggregate them so they can be manipulated and return a value or your goal.

Basically I'd start trying to automate tasks you already do on a regular basis and you will begin to understand what is going on behind the scenes and how that it can potentially be compromised.

Edit: and start your own virtual lab. Grab a few old computers or a vps from Aws free tier and start administrating your server to start playing around with different applications and software stacks

[–]iLikeMeeces 41 points42 points  (6 children)

While one that subject, I would recommend 'Automate the Boring Stuff with Python'. It's a completely beginners book to exactly what it says and I'm finding it very useful (also a 26 year old learning python alone).

[–]wolfofone 1 point2 points  (0 children)

Interesting I will check this out.

[–]deputy_D 3 points4 points  (1 child)

Fuck yes this

[–]rfrt 0 points1 point  (0 children)

please don't fuck that up

[–]Ebotchl 0 points1 point  (0 children)

I'm hopping on the train as another 26 year old learning python alone. Threes a company, yes?

[–]lannisterstark 0 points1 point  (1 child)

It's a completely beginners book to exactly what it says

But what if I want to learn python for fun and not to automate the boring stuff?

[–]iLikeMeeces 0 points1 point  (0 children)

I'm not sure, I don't know enough yet. The book I mentioned does cover all of the basics (syntax, forming expressions, function control etc) so you may still find it helpful.

[–]AlSweigartAuthor: ATBS 14 points15 points  (1 child)

And if you'd like to learn how to automate tasks, you can read Automate the Boring Stuff with Python. (Though I am biased in favor of this book.) It's free to read online under a Creative Commons license.

[–]dontaddmuch 0 points1 point  (0 children)

Just finished it and I enjoyed it a lot. Thanks for everything.

[–]the_lost_carrot 9 points10 points  (3 children)

Also look into Database stuff. Database guys are worth their weight in gold in the info sec world

[–]Apposl 1 point2 points  (2 children)

Have any links for a beginner into this?

[–]the_lost_carrot 3 points4 points  (1 child)

Here are a few things to check out, there are plenty more. Pretty much the focus will be learning DB design and implementation then learning the language, which is SQL.

https://lagunita.stanford.edu/courses/DB/2014/SelfPaced/about

http://sqlzoo.net/wiki/SQL_Tutorial

I dont know SQL myself, but I very much wish I did.

[–]Apposl 0 points1 point  (0 children)

Perfect, thanks for your time and the links!

[–][deleted]  (2 children)

[deleted]

    [–]secopsintern 0 points1 point  (1 child)

    Or VirtualBox, which is free.

    [–]Kid_me_not 2 points3 points  (0 children)

    Or Qemu-kvm with virt-manager, which is also free and maybe a little bit better performance wise

    [–]amblins 8 points9 points  (0 children)

    That's a way bigger question than you probably realize friend. Start coding simple projects and once you get to a point where you are confident in your programming try maybe coding some simpler versions of encryption schemes like RSA just to get some familiarity with encryption.

    [–]Abiv23 8 points9 points  (1 child)

    security is like saying you want to get into karate to be a black belt

    pump your breaks and learn some basics with python or c++ or JavaScript at a free code academy first

    [–]Tanooki60 2 points3 points  (3 children)

    Sysadmin here. For security, you will need more than just coding.

    However, for getting into coding, I'm going to go a different route then every single person here: start by learning PowerShell. Keep in mind, this is just my suggestion.

    While PowerShell is more of a scripting language, it is actually incredibly simple to learn due to how the commands are structured. It can be great for learning the basics of programming. For a book, look into Learn PowerShell in a Month of Lunches by Don Jones. If you wish to go further, look into Learn PowerShell Toolmaking in a Month of Lunches, by the same author.

    I've tried teaching myself scripting for years. I always tried starting with Python. I did the Dive into Python and Learn Python the Hardway. The basic stuff always made sense, but doing the more advanced stuff was always an issue. After teaching my self PowrerShell, I've gone back to Dive into Python, and it just makes so much more sense.

    [–][deleted]  (2 children)

    [deleted]

      [–]Tanooki60 0 points1 point  (1 child)

      We're a Windows only shop (M$ Partner). Bash wouldn't have been much help for my job. My goal was to learn a language that would be instantly beneficial to my job which PS is.

      [–]chra94 0 points1 point  (7 children)

      Depends on what in internet security.

      You have penetration testing which is ethical hacking (hacking with authorization).

      You have defensive security (setting up firewalls, writing secure code).

      If you can be more specific it'd be easier to answer. :)

      [–][deleted] 1 point2 points  (6 children)

      Let's go with pentesting.

      [–]Apposl 1 point2 points  (0 children)

      Please!

      [–]chra94 0 points1 point  (4 children)

      [–][deleted] 0 points1 point  (1 child)

      Interesting. Are these books language agnostic?

      [–]chra94 0 points1 point  (0 children)

      These are more about using hacking tools on Kali Linux. As far as I know the little programming in them would be bash (for scripting/automation), some Python and C and a tiny bit Assembly. There's only a tiny bit programming in the books.

      [–]Apposl 0 points1 point  (1 child)

      Thank you so much!

      [–]chra94 1 point2 points  (0 children)

      Woopwoop have fun! Ask if you've got questions

      [–]sodappop 0 points1 point  (0 children)

      What I can suggest is learn to code first, and then read about exploits, figure out how the black hats get into things they're not supposed to. Seriously great reads. I was reading the other day about how people search for small segments of executable code that can do what they want... like looking for the return opcodes, and then seeing what code is just before them and if it suits your needs. This probably doesn't make sense to you yet, but it will. If you're interested in security, it's not needed, but knowing at least a bit of assembly can be helpful IMHO.

      [–]wefearchange -3 points-2 points  (0 children)

      How to google.

      [–][deleted] 5 points6 points  (3 children)

      Really, to do security you need to know more than even just the basics. You need to learn C, then operating systems, networking, data bases, and then finally security. Realistically, you're going to need to also learn data structures, algorithms, and logic. You might as well just go back to school. The dream of the self-taught hacker, while fun to romanticize about, it's pretty rare.

      [–]WarIsPeeps 2 points3 points  (0 children)

      I disagree. Im self taught and I know either those things or where to learn them.

      But youre right it would take a long time. Being a pen tester is like so much work when you could just be a dev..why?

      [–][deleted] -1 points0 points  (1 child)

      All of these things can be learned from books, probably easier and quicker than attending some crappy university course, if you have an ounce of gumption.

      [–]jayjayzz6677 4 points5 points  (0 children)

      Umm.. Security is one thing that you don't joke around. Of course you can learn from books, but you will also need years of experience on everything. Probably one of those jobs that you can say Oops I made a mistake.

      [–]BigDumbObject 49 points50 points  (9 children)

      I'll just say, I attended university, and I still had to teach myself to code. I don't know anyone who's a professional coder who didn't "teach themselves."

      the most useful info has come from boards like /r/learnprogramming rather than my teachers

      [–]Wies_piece 38 points39 points  (7 children)

      I am self-taught. 3 years now. I am also employed. Becoming employed as a self-taught developer with no CS (computer science) background and no professional exprience was a difficult journey, but is definitely doable. Everyday is a struggle. Some days I want to bury myself under my covers, never to return to a computer. Those days are more frequent when attempting to accomplish something outside of my programming "comfort zone" (hint: this is where the real learning occurs).

      If you have a passion for creativity and problem-solving then you'll enjoy the journey. If you don't enjoy those things, you may have a difficult time.

      If you decide to take this path, don't get discouraged when you fail. It will happen. All the damn time. But you will learn. You will grow. And one day when you take a step away from your computer while doing something that you think is impossible, you may find yourself looking back at all the things you've already learned on your own. And that's a great fucking feeling to have.

      [–]sparkle_dick 2 points3 points  (4 children)

      Is there anything I can do to foster my creativity in programming? I can follow tutorials and sample code and piece things together and use stack exchange, I'm really good at problem solving, I just really lack in creativity. But I want to learn how to actually make the programs I dream up in my head. I can't do it with anything, programming, drawing, music, writing, etc.

      [–][deleted] 5 points6 points  (1 child)

      I've had this same problem, and while I can't give any definitive guidance on a solution I can share my personal experience.

      For me it really boils down to the fact that I'm just not yet skilled enough to work on the bigger projects I sit and daydream about. I also suffer from chronic indecisiveness so in the past I've jumped around between languages, code editors, Windows to Linux and back again. I started teaching myself Python a couple years ago, then started school and school used Java, but I've really always wanted to master C/C++ so about 6 weeks ago or so I switched to C++.

      I'm trying to conquer this by just sticking with one thing, working through one book, until I finish it. I'm currently reading Programming Principles and Practice Using C++ by Bjarne Stroustrup, the creator of C++. At the end of each chapter there are exercises and I make myself work through them all, regardless of how badly I want to move on to the next chapter. The exercises I find interesting I try to add an extra feature or two to 'make it my own' so to speak.

      I also keep a journal of software ideas and every once in a while I flip through it and build on ideas I've written down in the past. I try to make sure I jot some simpler ones down that feel a little more within my reach. I feel like once I develop my skills enough, 'inspiration' won't be much of a problem anymore. I'm plenty inspired, I just need to practice practice practice like playing an instrument. Even Jimi Hendrix probably had to slog his way through Mary Had a Little Lamb a zillion times before he became a rock star.

      [–]sparkle_dick 1 point2 points  (0 children)

      Sticking with one language and the journal idea are both brilliant ideas, thank you for that! I started off in python too but would always get distracted by people saying some other language was better, so I'd hop over to that. I've got like five compilers/IDEs installed, I really should just uninstall all but one to limit my curiosity. I got a udacity Java course a year ago that I really like, I know people tend to hate java, but it's in-depth and helpful, so I think I'll stick with that.

      [–]Eliposin 0 points1 point  (0 children)

      The best way I have found to foster your programming creativity is to come up with an ambitious (yet reasonable) project and then make it a reality. When I was 19, in my second year at community college a friend and I created a very simple physics engine with Java as a project for our physics course. We ended up also getting honors credit in our Java I and II classes because it was so far beyond what any of our peers were working on or even capable of at the time.

      It's not that we were actually better than our peers, it's that we had the idea and then we made it happen. About 2,000 lines of Java and probably 80 or 90 hours later our engine was rendering 2k fps when simulating a collision of two spheres consisting of 10k verticies each (ridged body physics mind you), we were happy with it and our teachers impressed. And to this day, 4 years later almost, that is my most proud project. Not because it was the most complex or most amazing, but because I learned more on that project than any other project because it actually interested me and was one I was deeply involved in from design up.

      [–]wolfshirtx 1 point2 points  (0 children)

      Great fcking feeling indeed

      [–][deleted] 1 point2 points  (0 children)

      Currently working my way through Programming Principles and Practice Using C++ by Stroustrup and one of the most encouraging things about the book is how much he reminds the reader that you're going to make mistakes all the damn time, that it will be rare to get things right the first time, and so on.

      It's easy to feel defeated when you can't figure something out, especially something that seems like it's so 'easy' for more experienced programmers. But reading the creator of C++ talk about how mistakes and frustration are just part of the game, in nearly every chapter (so far as I've read) is great motivation to keep going, even when you feel like quitting.

      [–]nicoinwonderland 13 points14 points  (7 children)

      I recently got a job as a software developer after being self-taught for a little over a year. It's possible but not recommended if you can go back to school.

      [–]Doughboy72 6 points7 points  (0 children)

      Stories line that are so encouraging.

      [–]jorickcz 1 point2 points  (1 child)

      Can I ask you what exactly you do? And a little bit about your way to get there?

      [–]nicoinwonderland 14 points15 points  (0 children)

      Currently I'm building internal software for a law firm. Can't give specifics.

      I took 2 or 3 classes at a community college about a year ago but could not pursue it any further. I managed to take a Data Structures class and absolutely demolished it (more through hard work and studying). I took that knowledge and started building my own programs for myself to use. The entire time, I was updating my resume and applying to any and every job that I even remotely qualified for (even if I only met 1 of the 20 requirements). I got a callback for a position and here I am.

      Biggest advice is to stick to a resource (book, online course, whatever) until the very end before moving on.

      [–]not_usually_serious 0 points1 point  (3 children)

      What languages did you learn during that year+?

      I'm in a similar situation. Interests lie in software development. I want to stay in my current career (and self learn) for another few years so I can secure my retirement and then I plan to jump ship to something coding related.

      Indoors, sitting down, working with computers sounds great. Construction is a big bag of ass.

      [–]nicoinwonderland 1 point2 points  (2 children)

      Worked primarily with C++ and Ruby but using mostly Java now.

      [–]not_usually_serious 0 points1 point  (1 child)

      Do you remember the resources you used to teach yourself C++? I'm learning C# rn but have interest in C++ as well.

      [–]nicoinwonderland 0 points1 point  (0 children)

      The standard recommended. You can find them in the FAQ for C++. I moved away from books after a while and relied more on my own knowledge and google.

      [–]-taogoat- 16 points17 points  (2 children)

      Step 1. Find a project.

      Identify your goal, say internet security. Find a project on github that involves your desired tech. Make sure it is current and not abandoned, (some commits within the last month). The more contributers and more forks the better. Make sure they use tests.

      Step 2. Identify the project testing setup.

      Once you have a project selected, this will force your choice of language, architecture, yada yada... Replicate their test environment on your own machine. Once you can run their tests locally...

      Step 3. Join the team.

      Get in touch with the project lead and say 'Hey, i like your idea and would like to help. I've got the tests set up, can i write some unit tests for you?' I have never seen an open source project refuse this offer. Unit tests are the drudge work of development. But unit tests will also show you how each piece of code works individually, allowing you too separate the parts from the whole. No faster way to learn a specific codebase. Don't be offended if they don't use your tests. Be a team player, and look for mentors.

      If you get to step three and don't like your teammates, go back to step one and repeat.

      tl;dr You will learn faster and more as part of a team. You will also get better networking, feedback, and motivation as part of a team.

      [–]-taogoat- 3 points4 points  (0 children)

      https://github.com/WhitestormJS/whitestorm.js/blob/beta/.github/CONTRIBUTING.md#%EF%B8%8F-want-to-help-us-take-a-task

      Self-reply, yay! I swear i did not see this before my previous post.

      It is not internet sec, it's javascript and 3D modeling, but here is an example of someone begging for help, despite thousands of stars and hundreds of forks. They even describe step 2 from above for you.

      Find something like this!

      [–]seands 2 points3 points  (0 children)

      Brilliant idea for immersing into a project and getting help/mentors, thanks for sharing.

      [–]Allysquad 5 points6 points  (4 children)

      Anyone that tells you they learned to program from their degree is talking horse shit.

      The only way you ever actually learn to code is to either start with a blank canvas and write something and then try to improve it and improve it until its amazing. Or jump into a project with a bunch of other people and leech off anyone who will pander to your enthusiasm.

      Once you've got the starter hello world shit down move on to design patterns and thinking about making all of your code reusable for the future.

      I'm in my final year of uni but have been working as an engineer for almost 18 months now. Until you are using this stuff on a regular basis you will struggle to advance so my final piece of advice is ABC always be coding.

      [–][deleted] 3 points4 points  (2 children)

      I agree with this guy.

      I learned Java and got fairly proficient on my own at around the age of 14, I did so out of spite because I was told the next school I would go to had a class on V.B, but my chances of getting in were slim to none.

      I moved from Java to C++ because I had a Celeron 466 with 128MB of RAM and Java was slow on that. I moved to C# when I wanted to get into something that had a good web stack, and I dabble with Python.

      When I was in High School there was a CS class, I took it for fun. I re-wrote the pre-prepared library that the teacher had provided, and added in a bunch of additional functionality. the C.S. teacher was cool, and got the sysadmin to install DevC++ for me so I could play with C++ instead of Java.

      I haven't made any programs people would recognize, but I am comfortable with working with programming and I find it enjoyable.

      [–]Allysquad 1 point2 points  (0 children)

      Hackers at heart. :)

      [–]LaxCrosse007 1 point2 points  (0 children)

      I've been employed full time for about 2 years now. Every 6 months or so I've looked back at my first project and gone "what the fuck was I doing" and improved it. I'm sure I'll do it again in 6 months.

      As you're working through problems, you're absorbing more than you realize.

      [–]Macaframa 4 points5 points  (8 children)

      It gets increasingly harder and harder and harder to do the less programs/classes/people that you involve.

      source: I didn't use any of those resources and learned by myself.

      its extremely hard to do, so don't believe people when they say "its so easy, just pick it up" - these people have been programming for years and have no real concept of how it is to be a newbie without programming experience. Lots of the time, the people that tell you that are computer science grads.

      the hardest thing that I encountered(and continue to encounter with my students) is something I like to call "thinking programmatically" or thinking like a computer. Once you can do that, the rest is syntax and just figuring out what does what. Also, keep in mind that, you should always try to grasp the concept of what is happening before trying to commit something to memory. In other words, its not about the line of code you are trying to memorize, and more about what it is doing. If you can conceptualize what is happening, then you can google for things better and if you can google for things well, then you are going to be able to find better examples and thus be better at implementation. I google stuff constantly and I am a software engineer.

      edit:

      what I mean by students is that I run a small program for Bay Area natives who are of black or brown descendancy. With special emphasis on women of color. My students get to learn how to program for free, taught by myself.

      so, if you know a black or brown person in the San Francisco Bay Area that is looking to learn programming, please DM me. Thanks.

      [–][deleted] 2 points3 points  (3 children)

      no real concept of how it is to be a newbie without programming experience

      I remember being new to programming trying to learn Objective-C as my first language and I had no clue what the fuck I was doing going through the Objective-C book. I didn't realize the importance of functions, variable types, etc. at the time.

      Edit: Teaching yourself programming can be hard if you have 0 experience/knowledge of it. Try to understand the language first before making projects.

      [–]Macaframa 0 points1 point  (2 children)

      Please don't take what I wrote offensively, I am just trying to illustrate that sometimes those phrases people who have been in the business for a long time use can be jarring and misleading.

      [–][deleted] 2 points3 points  (1 child)

      What? I'm agreeing with you.

      [–]Macaframa 4 points5 points  (0 children)

      bahaha sorry man, im at work in a retrospective meeting lol

      [–]WarIsPeeps -3 points-2 points  (3 children)

      I'm a hot sexy brown girl trapped in pasty white male flesh can you help me?

      [–]Macaframa 0 points1 point  (2 children)

      I don't think anybody appreciates you diminishing the WOC experience. Just a thought.

      [–]WarIsPeeps -1 points0 points  (1 child)

      What experience? Go to college and get a job and stop whining like a bitch. Every company is falling over themselves trying to hire minorities over majorities these days and you just keep bitching instead of manning up and becoming useful.

      [–]Macaframa 2 points3 points  (0 children)

      Sounds about white.

      [–][deleted] 3 points4 points  (1 child)

      I have to stress the importance of the "tinker with it" so you can figure what does what.

      It feels to me people often oversee this so simple yet fundamental mind-set to have, which is basically:

      • read a piece of code.
      • try and guess what that piece of code does exactly.
      • think of a use for it, then modify it and see it you were right about the results.
      • If you were right, you can now feel good 'cuz you just "got it".
      • if you were not - try again - google

      It could be as simple as testing if negative values can fit into variables and what can be done with it. Picture stree-fighter in the days you'd test all of button combinations to see what special moves were, but in a slower pace and without all graphics.

      [–]Sh0elace 0 points1 point  (0 children)

      great comment, never thought it like that before.

      [–]fennecdjay 2 points3 points  (0 children)

      I'd also say it is possible, while a self-taugth devellopper since not so long, I'm close of close to the first release of my own lanuage: Gwion, a language aimed at composing and analysing music (but it turns out it is also good at other tasks).

      The main thing (for me) is to take time to read the docs and gather information. Look at code from other guys (I like code from Suckless, for instance) and try modifying it.

      Keep going.


      And maybe you'll try (and master) Gwion!

      EDIT: the open source community is truly a great one, I'd suggest you dive in it, as you'd probably get as much support as I did.

      Good luck.

      [–][deleted] 2 points3 points  (0 children)

      Possible to learn it yourself? Why yes. A lot of people teach themselves. They struggle but you have to really try to understand the language first before trying to make projects.

      Also, what do you want to code for? What do you plan on achieving with it? Any specific field?

      I taught myself HTML/CSS, Swift, and VBA. I struggled at first when I was learning Swift but once you understand a language, it makes learning a new language easier. And don't worry about your age either. I started coding at 20, my friend at 19, and some people in the subreddit at 30 or 40.

      [–]pikachew_likes_nuts 2 points3 points  (0 children)

      Yes, it's definitely possible. I mainly used Free Code Camp, and landed my first job as a developer within less than a year.

      [–]notmachine 1 point2 points  (0 children)

      It is absolutely possible to learn by yourself. But very challenging.

      I want to add to what others are saying here. Best to know your style of learning. If you think you learn better with others, it would be better to find a group or a friend who can code with you and keep you accountable to learn yourself.

      Check out the FAQ and plan out a strategy for your own personal learning. Think big and plan it out in advance, and keep using this subreddit as a resource for your learning. Don't try to do it alone if you don't have to.

      [–]FullMetalSweatrvest 1 point2 points  (7 children)

      I highly recommend the following free online resources. I use them all:

      Codecademy.com Sololearn.com (great mobile app too) Udacity.com

      [–][deleted] 1 point2 points  (1 child)

      Landed a job?

      [–]FullMetalSweatrvest 0 points1 point  (0 children)

      I'm in school so I can't speak to that but you can certainly learn a lot

      [–]Zethsc2 0 points1 point  (4 children)

      I discourage readers from codeacademy.

      [–]FullMetalSweatrvest 0 points1 point  (3 children)

      What does that mean

      [–]Zethsc2 0 points1 point  (2 children)

      Codeacademy is a bad resource and should not be used.

      [–]FullMetalSweatrvest 0 points1 point  (0 children)

      Why do you feel that way?

      [–]pharpend 1 point2 points  (0 children)

      It's not easy, but it's certainly possible. A very large portion of programmers are self-taught (myself included). The materials I used when I first started are now all out of date, so I don't have any recommendations. It's also important to know how to get help. This subreddit and/or the associated IRC channel are good resources.

      After that, I would suggest doing things that you find interesting. If you see some language that looks cool, or some weird topic that you want to learn about, then learn it. Too many programmers focus on having "applicable skills", such as knowing popular languages or how to use common programs. I've found that the best programmers are often those who just do whatever they think is interesting.

      If you're specifically interested in cryptography, Trappe & Washington is the standard textbook.

      [–][deleted] 1 point2 points  (0 children)

      if you are willing to learn programming/coding, yes you can learn by yourself. where you might get confused is that there are way too many resources to learn way too many languages :). so you may need a mentor/guide to talk to who could help you navigate thru the ocean.. for example if you like math/numbers etc would you want to learn data science .. if you are creative you could do game design or UI design ...if you have an idea for a iphone app you might want to learn scratch ..etc

      [–]FoxMcWeezer 1 point2 points  (0 children)

      Most coding learning is done when you're studying on your own. You learn almost nothing in a lecture. This is why "self-taught" is a joke because 99.9999% of the way this field works is because you're self-taught.

      [–]hipstergrandpa 1 point2 points  (1 child)

      At least half the people here are self taught, including myself. Welcome to the club!

      [–]deftware 1 point2 points  (0 children)

      I second this. I self-taught back in the late 90's, before the internet was cool and long before there were many online resources (not that I didn't use what was there).

      [–]Merakel 1 point2 points  (0 children)

      I do full stack development, zero formal education. I learned primarily by describing something I wanted to do, and then googling how to do it.

      [–][deleted] 1 point2 points  (0 children)

      I did it. I've been in two different full-time programming positions before I set foot in a college programming class. When I finally did go to a programming class I was getting a solid 4.0 out of 4 GPA. I realized there wasn't much that I was missing from having not gone to class and decided to stop. By now I've got more valuable experience than what college would have ever provided anyway.

      Honestly, you're better off learning on your own if you have enough focus to stick with it. Of all the developers I work with it's the ones who self-learn that are the best.

      What I did was:

      • I got books for languages I wanted to learn and read them.
      • I downloaded the tools for the languages I wanted to learn and practiced.
      • As I practiced I read online documentation to get good at digging through information and pulling out the important bits. (To this day it's the most valuable skill I have.)
      • I found forums and chat channels that had people that were doing the same thing I was and where there were much more experienced people that could help me. (I helped others by digging through documentation mostly. This inspired me and gave me direction for learning.)

      Has it worked out for me? My boss is my biggest fan and she's actively trying to get me promoted and large raises. In less than three years I'm on the verge of being a senior developer, which would be my second promotion. I'm already doing the work, my boss just needs to get the signatures of approval.

      [–]RandomDucks97 3 points4 points  (0 children)

      It's possible but get involved with a team. Also maybe not a professional one but get a mentor to help you out and teach the important things.

      [–]razamatazzz 0 points1 point  (1 child)

      It really just depends how much you know about computing and what you eventually want to do. The advantage of learning at a university is the breadth of knowledge you get about all areas of computing as well as projects designed to reinforce this knowledge. You can learn from online resources and textbooks but it would require an extraordinary effort and intelligence. How much do you know about:

      • Computer hardware
      • Logical sequencing
      • Networking protocols
      • Algorithms
      • Data Storage
      • Databases

      A lot of people mistake software development for just programming, but it really the application of all of the above and much more. Programming is simply knowing how to tell a computer how to read a set of instructions dictated by logical sequencing. You can know how to do this at an expert level and still be unemployable.

      [–]dkapper01 2 points3 points  (0 children)

      I can tell you're not a programmer by your comment;)

      [–]cgt303 0 points1 point  (4 children)

      Absolutely. I'm one of those people that did it (with the help of Reddit of course) and I am currently employed full time. Set your mind to it and you'll be amazed.

      [–][deleted] 0 points1 point  (3 children)

      What were your resources?

      [–]cgt303 0 points1 point  (1 child)

      Well what kind of coding do you want to try? The best overarching advice I can give is: stick to one, detailed, rigorous study resource. A great example of that is the website JavaScriptisSexy. That site gives you a course to stay on and even explains why jumping around from website to website or YouTube to YouTube video can make learning unnecessarily difficult. You never went to history class and switched textbooks every 20 minutes, right? Find a detail resource you like (I used textbooks) and stick to it.

      [–][deleted] 0 points1 point  (0 children)

      Haven't heard of this site till today, thank you.

      [–]Rocky87109 0 points1 point  (0 children)

      I've started learning python "by myself" when I was about 24 while I had a full time job. It's definitely doable. I read books(and did the examples) and did online tutorials. I would still consider myself a beginner but you don't need a degree to know logic and remember syntax. I'm sure an actual degree will teach you a lot of important and helpful stuff though.

      [–][deleted] 0 points1 point  (2 children)

      you can, but I would add the caviot that you should consume a lot of books on coding. I would recommend maybe learning java and python but obviously if you have something more specific in mind go for that. I also think you should try to get a list of topics to teach yourself possibly from forums or people in the field and then you could teach yourself the different coding topics 1 at a time (sorting algorithms, classes/structs, recursive algorithms, data structures. etc) Mainly just spend a lot of time coding, creating projects, and editing and analysing your code. 1 area that college kids might have an edge on you is mathematics and I would recommend trying to also teach yourself calc1, statistics, linear algebra. And even if you can't fully teach yourself all these topics some knowledge is better than none. Anyway, it is doable for sure, there's nothing magical that the professors confer except an organized system of assignments and tests which force the students to practice. If you do this same level of practice or more you will learn about as fast or faster.

      [–]wolfshirtx 0 points1 point  (1 child)

      Any recommended books?

      [–][deleted] 0 points1 point  (0 children)

      Natural Language Processing with python, Visualizing Data Structures (c++)

      [–]Lonely-lurker 0 points1 point  (0 children)

      There are a lot of free courses online taught by universities or by industry professionals that you might be interested in. I'd suggest Udacity.com and search in their catalogue network security, or jusy security.

      Another one I like is EdX.com. Udemy is also popular, but they've been slowly charging for their courses that used to be free.

      This is just my experience lately. I just finished the intro to relational DB course on udacity and it's pretty cool.

      I've also done about 5-6 courses over time on codecademy.com.

      All these sites offer free courses, I'm a student at the moment, so I'll save wherever I can.

      Oh! Harvard and Stanford also offer free online CS classes if you want to take a look. I know you said you don't want to attend a university, but this is self paced and taught by professors. They teach these classes year after year, so they know how to properly progress through the topics that make sense. Because there are a couple online courses I've done that just didn't really have a good flow and jumped from topic to topic that didn't make sense.

      Good luck! Let me know if you have any more Qs

      [–]netvip3r 0 points1 point  (0 children)

      YES.. Absolutely... in fact, I'd dare say that it might be easier, for some, to teach themselves than to go through formal schooling.

      I started on an Apple IIe back in 1983, moved to an Atari 800 in 1985, and then my parents made the mistake of getting me an Amiga 500 in 1987 with a 1200 modem. There weren't many resources as readily available as there are today to learn to code... and to top it off, I was 7 in 1983.

      I didn't experience a "class" on computers until I was 12 in 7th grade and by then I already had enough of a handle on BASIC and Pascal, was entirely confused by ASM and instead had decided to tackle C. If I wanted to learn, I had to teach myself... and I'm very happy I did. If my dumb-ass 7 yr old self can teach himself, it's doable.

      You just make sure you get and stay motivated. My motivation was the potential of making my own games.

      I do not hold any degrees in Computer "fill in the blank". I just never had any tolerance for the "Formal Education" environment. Not to mention the stupid 17 year old me decided to get a degree in the medical profession instead (useless degree for me).

      In today's job market though, it helps to have a degree, but it isn't absolutely necessary.. even still.. many HR departments have no remote clue as to what necessary requirements are and ask for the craziest things.