Author Topic: Talk to me about computer programming.  (Read 5204 times)

Penny McSave

  • 5 O'Clock Shadow
  • *
  • Posts: 54
Talk to me about computer programming.
« on: November 29, 2016, 01:32:42 PM »
Hi folks, I'm looking to learn some sort of programming language but I don't know where to start. I would really like to have some marketable skills and looks like coding would be a good one to have these days. I find the intricacies of code to be fascinating and I'm excited to learn. Ultimately I'm thinking of making a career switch and I think this is the path I'd like to explore. I'd like to get some insight from professionals in the field as to where to begin, which languages are most in demand and how to get on track towards a career using this skill.  Currently I have rudimentary knowledge of html and binary, octal, and hexadecimal notation. (soooo basic ;)) I want to do REAL programming. I want to look at program's source code and understand it. I want to be able to build my own programs, possibly even games. I think I'd also really enjoy being in information security (I wanted to be a hacker back in the day LOL).

At this point I'm a little overwhelmed and don't know where to begin. I have 6 weeks off from my regular job to get the basics covered and I want to spend the next year orienting myself to the ways of the code. I want to teach myself as much as possible but obviously I'm open to taking any relevant classes as needed.  I've decided on a 5 year plan of learning everything I can, getting certified and finally applying the knowledge to a career in IT of some sort. Help me figure this out! What advice would you give to someone who is literally just beginning their journey into programming?


ShoulderThingThatGoesUp

  • Magnum Stache
  • ******
  • Posts: 3053
  • Location: Emmaus, PA
Re: Talk to me about computer programming.
« Reply #1 on: November 29, 2016, 02:35:35 PM »
A good place to start thinking this way is automating your daily tasks at work, if you're on a computer all day anyways.

AlanStache

  • Magnum Stache
  • ******
  • Posts: 3175
  • Age: 44
  • Location: South East Virginia
Re: Talk to me about computer programming.
« Reply #2 on: November 29, 2016, 03:00:56 PM »
The language 100% depends on what you want to do.  Statistical analysis uses different tools (languages) than web development.  Do you want to be more in a math based analysis/research area or generic Windows program development or do you want to make Android games? 

I would suggest poking around some free online learning sites to see what interests you.  Look at as many different areas as you can before spending more than a day or two on anything specific.

fun little thing: http://www.bestprogramminglanguagefor.me/q
also: https://www.reddit.com/r/learnprogramming/wiki/faq
« Last Edit: November 29, 2016, 03:08:31 PM by AlanStache »

mskyle

  • Pencil Stache
  • ****
  • Posts: 691
Re: Talk to me about computer programming.
« Reply #3 on: November 29, 2016, 03:29:34 PM »
Five years is probably way more than you need! Also for a lot of programming there's not really a "certification" that you can get - think more in terms of a portfolio of work and projects. Anyway, if you work hard you can probably get to "employable" within a year or two (depending on your local market), and then you can learn tons more on the job.

Mostly you just need to get started and go for it!

For a first language, Python and Ruby are relatively easy-to-learn languages that are used in real life projects. Ruby and Python use more English words and less weird abbreviations and brackets than a lot of other commonly-used languages. Anything you're going to need to do in your first year of coding you can do in Ruby or Python.

There are some good intro classes on edx,  Coursera, etc. <a href="https://www.edx.org/course/introduction-computer-science-mitx-6-00-1x-9">Introduction to Computer Science and Programming Using Python</a> from MIT is a good one but it runs in defined sessions and doesn't seem to start again until January. I'm sure there are lots of other good ones out there.

If books are more your style, that's a great way to go too; when I was starting out I learned a lot from the book Learn to Code (Using Ruby) by Chris Pine; it's kind of out of date now (the language has changed) but it might still be a good one to try.

Is there some kind of web app you would like to build? Web development is an easy way to get started that still requires real coding. The <a href="https://www.railstutorial.org/">Hartl Rails Tutorial</a> guides you through building an app in Ruby on Rails, and you don't really need much coding experience to get started, although I think it's better to focus on fundamentals first. (Ruby is the programming language, Rails is the framework; ideally it's good to have a background in an actual language before you start messing with frameworks but it's not actually necessary.) I'm a Ruby on Rails developer, so these are the resources I know, but I don't actually think Ruby is a better language than any other.

I'm guessing from your username and your other posts that you might be a woman; if so, check to see if there are any Railsbridge events in your area - they're in-person workshops (with free childcare and pizza, too!) for women who are brand-new to coding.

WildJager

  • Bristles
  • ***
  • Posts: 440
  • Age: 37
    • Can't complain.
Re: Talk to me about computer programming.
« Reply #4 on: November 29, 2016, 03:48:13 PM »
A good place to start thinking this way is automating your daily tasks at work, if you're on a computer all day anyways.

I'd second this.  I took computer science in college, but haven't really used it since.  However, since everyone and their mother uses microsoft excel for their products on the corporate level, I often times will write simple scripts with VBA (the built in coding language) to make my life easier.  It also keeps my mind sharp problem solving when nothing else is going on.

One summer I was in a position that was utterly wasteful (government, big surprise) towards my skill set.  I literally was tasked to take information from a multitude of spreadsheets from multiple users, and consolidate them into a single spreadsheet to pass up the chain.  The tricky part was that there were various standards of formatting, so everything had to be parsed to match up.  A new 'stack' of sheets would show up every morning.  My predecessor trained me the first day I took over.  We started around 7:00 AM, and by around 3:00 he finished the task.  My first thought, as it usually goes with this kind of tedious nonsense, was "fuck this."

Within a week I had automated the process.  When I trained my replacement I explained, "Well, put the spreadsheets they send you here.  Good.  Now, you see that big ass "Gonkulate" button?  Press that.  Great!  Hit send on the email that was generated... awesome!  You're done for the day.  Try not to kill yourself.  I'm going home."

Point of the story is, if your workplace uses Microsoft Office, VBA is a great place to start learning the concept of coding in more depth and accomplish work at the same time.

daverobev

  • Magnum Stache
  • ******
  • Posts: 3961
  • Location: France
Re: Talk to me about computer programming.
« Reply #5 on: November 29, 2016, 05:11:43 PM »
Hi folks, I'm looking to learn some sort of programming language but I don't know where to start. I would really like to have some marketable skills and looks like coding would be a good one to have these days. I find the intricacies of code to be fascinating and I'm excited to learn. Ultimately I'm thinking of making a career switch and I think this is the path I'd like to explore. I'd like to get some insight from professionals in the field as to where to begin, which languages are most in demand and how to get on track towards a career using this skill.  Currently I have rudimentary knowledge of html and binary, octal, and hexadecimal notation. (soooo basic ;)) I want to do REAL programming. I want to look at program's source code and understand it. I want to be able to build my own programs, possibly even games. I think I'd also really enjoy being in information security (I wanted to be a hacker back in the day LOL).

At this point I'm a little overwhelmed and don't know where to begin. I have 6 weeks off from my regular job to get the basics covered and I want to spend the next year orienting myself to the ways of the code. I want to teach myself as much as possible but obviously I'm open to taking any relevant classes as needed.  I've decided on a 5 year plan of learning everything I can, getting certified and finally applying the knowledge to a career in IT of some sort. Help me figure this out! What advice would you give to someone who is literally just beginning their journey into programming?

What do you think real programming is?

I'll tell you - it's breaking down large problems into small chunks.

If a=1 Then

If obj.Size >= 3 Then

While Not EOF Do

Languages.. well, it's not about the language. It's about getting the thing to do what needs doing. Real programming, well, there's two main kinds - system-limited (ie, working within certain constraints - memory, CPU power, whatever), or generally not (where optimisation at the code level isn't so necessary). Modern languages are somewhat efficient naturally, assuming you don't write completely silly things.

Modern languages are built on frameworks on older on older on older down down down to machine code. At the very bottom you have gates (NAND, AND, XOR, etc). At the top you have

window Window = new Window();
window.show("http://www.google.com");

What do you want to *do*? That dictates what languages you learn. Web? Then you need at least HTML, CSS, javascript. Data? Some kind of SQL. Games? You're very unlikely to start from scratch - there are frameworks and products and...

You need a project.

katsiki

  • Handlebar Stache
  • *****
  • Posts: 2015
  • Age: 43
  • Location: La.
Re: Talk to me about computer programming.
« Reply #6 on: November 29, 2016, 05:36:36 PM »
If you are also interested in information security, you may want to consider learning Linux and bash (scripting language) or Windows Server and Powershell.

You've gotten lots of great feedback.  As someone else said, go find a project and get started!  :)

ender

  • Walrus Stache
  • *******
  • Posts: 7402
Re: Talk to me about computer programming.
« Reply #7 on: November 29, 2016, 05:58:15 PM »
What advice would you give to someone who is literally just beginning their journey into programming?


Are you ok with this as a career? https://xkcd.com/722/



A good place to start thinking this way is automating your daily tasks at work, if you're on a computer all day anyways.

More seriously, this - the best (and easiest) way to become a programmer is to become a novice programmer in an area you have value. You have some business knowledge value and being able to translate that into even the most basic of programs is the easiest and most surefire way to go down this path.

Identify problems at work you think might be solvable with automation (don't just think "program!"). Think automation. Figure out what mindless task you have to do every day and automate it. Or something that is a huge waste of time.

An easy way to identify those is to ask yourself how many of your tasks take thinking vs clicking. If it takes thinking, it might be harder to program. If it's mostly just mindless butt in seat work? Prime programming opportunity for someone in your situation.

The reason to do this is the golden ticket is being able to learn this on your current job.

Penny McSave

  • 5 O'Clock Shadow
  • *
  • Posts: 54
Re: Talk to me about computer programming.
« Reply #8 on: November 29, 2016, 06:59:16 PM »
Wow, thank you VERY much for the replies! I've been researching all day and even downloaded python to give it a go. At the moment I have literally no clue what I'm doing but I'm determined to figure it out. It's still overwhelming and I don't exactly know what I want to DO at this point in time. As for automating tasks at work, well, I don't work with computers in my day to day job so I don't think that's an option. I hope nobody is looking at me like I just grew a second head after dropping that bombshell. When I say newbie, well, you get the picture.

Ender, that little comic is hilarious and oddly, I think I would have fun finding the error in the code. I'm a bit of a treasure hunter at heart and I really enjoy solving problems.

Daverobev, katsiki, you're both right, I need a project. I'm already familiar with html so I'm thinking of learning css to take it further as a start. I've been talking to my husband about his need for a webpage (he is a freelance musician). Maybe I'll be the one to make it!

mskyle, thank you very much for the resources. I checked out the Railsbridge events and there is indeed one near me in January! I think I just might have to check that out.  Oh, and the 5 year plan is because I'm starting from zero. Hopefully it won't take that long to be where I want to be but I'm a realist. ;)


 Again, thank you all for the insights. I've got my work cut out for me but I'm excited to learn. :)

daverobev

  • Magnum Stache
  • ******
  • Posts: 3961
  • Location: France
Re: Talk to me about computer programming.
« Reply #9 on: November 29, 2016, 07:53:12 PM »
Wow, thank you VERY much for the replies! I've been researching all day and even downloaded python to give it a go. At the moment I have literally no clue what I'm doing but I'm determined to figure it out. It's still overwhelming and I don't exactly know what I want to DO at this point in time. As for automating tasks at work, well, I don't work with computers in my day to day job so I don't think that's an option. I hope nobody is looking at me like I just grew a second head after dropping that bombshell. When I say newbie, well, you get the picture.

Ender, that little comic is hilarious and oddly, I think I would have fun finding the error in the code. I'm a bit of a treasure hunter at heart and I really enjoy solving problems.

Daverobev, katsiki, you're both right, I need a project. I'm already familiar with html so I'm thinking of learning css to take it further as a start. I've been talking to my husband about his need for a webpage (he is a freelance musician). Maybe I'll be the one to make it!

mskyle, thank you very much for the resources. I checked out the Railsbridge events and there is indeed one near me in January! I think I just might have to check that out.  Oh, and the 5 year plan is because I'm starting from zero. Hopefully it won't take that long to be where I want to be but I'm a realist. ;)


 Again, thank you all for the insights. I've got my work cut out for me but I'm excited to learn. :)

A website is a good start. Just.. don't bother with anything 'old' - learn clean, HTML 5 and CSS 3. And JavaScript. That's all you need. You can do that on any computer, just with notepad. I use Notepad++ for multiple tabs and syntax highlighting.

jezsh

  • 5 O'Clock Shadow
  • *
  • Posts: 11
Re: Talk to me about computer programming.
« Reply #10 on: December 01, 2016, 07:16:56 AM »
Programming is super fun - I hope you enjoy it! I taught myself enough programming a few years back to get a job as a support engineer and now work as a technical analyst. For me, getting from zero knowledge to getting offers as a junior developer was slightly less than a year of part-time independent study. As a beginner, I focussed on the following:

Excel: I learned how to use all the "advanced" formulas and some basic VBA. My starter project was crunching some data we had at the company I worked at to get my speeds and complaints resolution stats in relation to other reps (I was doing customer service at the time). Fun, good practice and made for some great resume points :) I still use what I learned about Excel regularly in my current job, so I'd recommend it even though it's not terribly glamorous. Do you have anything like that you could play around with at your current job?

SQL: SQL is a query language which has a relatively low barrier to entry and is highly sought after. There are a lot of free resources online where you can download a sample database and run SQL queries on it.

Python: As others have said, python is a really nice starter language. It's written in a fairly logical manner and doesn't have a lot of confusing syntax, which can be off-putting to a beginner. I learned with "Learn Python the Hard Way", which is a great series. Last year I also practiced my python with Advent of Code (http://adventofcode.com/). You're just in time to start this if you like!

Javascript: Once I had the fundamentals down, I moved into Javascript, starting with basic tutorials on sites like Codecademy and later built my own basic website. More recently, I have worked through the frontend portion of Free Code Camp (https://www.freecodecamp.com/), which is an amazing free resource.

As others have said, you might find coding groups in your local area. I live in a city, but if I check Meetup.com, it feels like half of the groups are for programmers, including groups where you can just meet up and work on our own projects together. If something like that is available where you live, it's a great way to meet like-minded people and sharpen your skills.

Good luck!

dreams_and_discoveries

  • Pencil Stache
  • ****
  • Posts: 924
  • Location: London, UK
Re: Talk to me about computer programming.
« Reply #11 on: December 01, 2016, 09:39:02 AM »
What's your background, what sort of places to you work in and where are you located? The easiest way is usually a sideways move internally, as you have business knowledge most companies are willing to train you a bit on the technical side - lots of people usually learn by doing real tasks, and modifying existing code is a great way to start.

bryan995

  • Pencil Stache
  • ****
  • Posts: 595
  • Age: 37
  • Location: California
Re: Talk to me about computer programming.
« Reply #12 on: December 01, 2016, 04:06:19 PM »
Browse through some of these questions and solutions.
https://www.interviewcake.com/all-questions/python

This will you give you some visibility into common computational/engineering problems.

A fun route:
Buy yourself a rasberry PI.
Install ubuntu.
Learn linux.
Find some task you would like to automate.
Research and program in ~python.



letired

  • Pencil Stache
  • ****
  • Posts: 824
  • Location: Texas
    • Needs More Glitter
Re: Talk to me about computer programming.
« Reply #13 on: December 01, 2016, 04:30:04 PM »
Starting off with a webpage is a great first project! After you make one for your husband, you can make one for yourself!

I'm going to drop off a few learning and inspiration links here:

https://www.codecademy.com/ - great resource for very beginning coders, good for initial tours of a few programming languages and getting comfortable with typing weird stuff, but the real learning is when you actually sit down to do this stuff on your own computer instead of their box on a webpage.

https://learncodethehardway.org/ - another resource for complete beginners, has great walkthroughs of getting set up on your computer instead of doing stuff on a webpage. A little better for Real Learning (tm). Also has some good stuff on getting comfortable with the command line, if you've never used it before.

https://jenniferdewalt.com/ - mostly for inspiration, she did a webpage every day, starting with the very basic stuff, and getting more complicated. If you get stuck for ideas of what to do, a fun thing to look at. Also, if you google for 'programming toy project' or 'programming project idea', you'll get lots of ideas of small projects you can work through.

meetup.com - search for 'technical' meetups in your area. Common ones are groups for Ruby, Python, general web development, and more! Some will have learning meetups where you all work through a book or program together.

and +1 to freecodecamp. I've never used it, but I've heard good things.

nj101

  • 5 O'Clock Shadow
  • *
  • Posts: 3
Re: Talk to me about computer programming.
« Reply #14 on: December 02, 2016, 12:44:42 PM »
Ok..... my first reply on this forum...

You probably need ~6 months before you can learn a programming / technical skill to make some money if you follow the targeted path(hopefully you are ready for that). As long as you have good analytical skill, you can prettly much learn any programming language.

I need more information to point you in the right path....
Some examples i can think of now:
1. If you love to work with kids.... you can learn arduino (20$ book + ~100$ products + 1 month hard work) and you can start taking kids classes to teach arduino or start a good robotics classes

2. If you like to develop something new: start with python (highly recommended) (2 months or training udemy + couple of projects + take small projects from freelancer site) now you are the master of python..and now can teach + code for money + full time job......

3. try developing a website (very simple task....1 month of dedicated learning + develop some small business website )

4 you can learn a testing tool and can land a full time job......

It all depends on your interest..... I have been  in this industry since last 20 years and i can tell you that you don't need to learn a lot (like 4 years degree.... or masters) to enter this field (I have two masters and really don't need that)....

let me know if you are really interested and we can dive down to find a particular path....

-R


lifeanon269

  • Pencil Stache
  • ****
  • Posts: 566
Re: Talk to me about computer programming.
« Reply #15 on: December 02, 2016, 01:02:01 PM »
I second codecademy.com for getting started with a language. It is a great way to learn the basics of a new language and they hand-hold you the whole way. It is also a great way to learn hands-on as opposed to reading a text book of some sort. So you can begin to apply it right away.

As someone in the Information Security field, I highly recommend you determine what career path you want to continue down before you get too far. There is a massive difference in the skills needed to say, code a program for some task, versus developing a game, versus web development, versus reverse engineering, versus exploit development, etc.

Once you determine what path you want to go down, then you can begin to learn the specific skills required of that path.

As someone in Information Security, with regards to programming languages, I highly recommend C, Python, and Assembly.

Penny McSave

  • 5 O'Clock Shadow
  • *
  • Posts: 54
Re: Talk to me about computer programming.
« Reply #16 on: December 02, 2016, 04:11:03 PM »
Thanks again for the replies! As far as figuring out a path, I'm very much interested in system/information security. I think finding bugs/vulnerabilities/exploits in software and finding ways to fix them would be incredibly satisfying to me. I like solving problems and I tend to be OCD about things until I find a solution. So, I've decided to learn python to get the ball rolling.  I've been following a few youtube tutorials and really enjoying it. I'm also thinking about finding a cheapo computer to learn more about the full system. Something I can root around in without worrying too much about screwing up ('hack' myself in a way lol). I plan to devote all of my free time in 2017 to learning everything I can about coding (and systems) and hopefully a year from now I can be competent enough to get my foot in the door of a more promising career and more learning opportunities. :)

You all have been so awesome with the advice and resources you've provided, just want to shout a huge THANK YOU!

chesebert

  • Pencil Stache
  • ****
  • Posts: 816
Re: Talk to me about computer programming.
« Reply #17 on: December 02, 2016, 04:39:46 PM »
Don't forget the theories - data structures
I second codecademy.com for getting started with a language. It is a great way to learn the basics of a new language and they hand-hold you the whole way. It is also a great way to learn hands-on as opposed to reading a text book of some sort. So you can begin to apply it right away.

As someone in the Information Security field, I highly recommend you determine what career path you want to continue down before you get too far. There is a massive difference in the skills needed to say, code a program for some task, versus developing a game, versus web development, versus reverse engineering, versus exploit development, etc.

Once you determine what path you want to go down, then you can begin to learn the specific skills required of that path.

As someone in Information Security, with regards to programming languages, I highly recommend C, Python, and Assembly.
Oh that's nice, I already know (probably more like used to know) 2 of the 3. Do you also need to know about data structures, algorithms and compiler design and construction?

chesebert

  • Pencil Stache
  • ****
  • Posts: 816
Re: Talk to me about computer programming.
« Reply #18 on: December 02, 2016, 04:45:02 PM »
What advice would you give to someone who is literally just beginning their journey into programming?


Are you ok with this as a career? https://xkcd.com/722/



A good place to start thinking this way is automating your daily tasks at work, if you're on a computer all day anyways.

More seriously, this - the best (and easiest) way to become a programmer is to become a novice programmer in an area you have value. You have some business knowledge value and being able to translate that into even the most basic of programs is the easiest and most surefire way to go down this path.

Identify problems at work you think might be solvable with automation (don't just think "program!"). Think automation. Figure out what mindless task you have to do every day and automate it. Or something that is a huge waste of time.

An easy way to identify those is to ask yourself how many of your tasks take thinking vs clicking. If it takes thinking, it might be harder to program. If it's mostly just mindless butt in seat work? Prime programming opportunity for someone in your situation.

The reason to do this is the golden ticket is being able to learn this on your current job.
That's very helpful. I would like to create an AI program to takeover my job. Where do I start? I know a bit about Matlab, C, C++ and Assembly but have been out of the field for 15+ years. I can use Kira for some very basic automation but I still do too much - I want 50%+ automation of my job.