Author Topic: Programming  (Read 10804 times)

0 Members and 1 Guest are viewing this topic.

Offline MyNameIsFinn

  • Thread Starter
  • Posts: 263
Programming
« on: Thu, 22 March 2012, 14:55:21 »
Hi, I want to get into the field of programming :)

Now, I am not the brightest nor do I claim to be, I want to know a couple things.

A: What are the uses of programming, Ex: Making Games

B: What is the best starting language

C: Try to explain to me exactly what "programming" is

I am really, really interested in this


Also for some reason hacking and programming seem to go hand and hand, why is this, what are the similarities.
« Last Edit: Thu, 22 March 2012, 14:57:29 by MyNameIsFinn »
[SIGPIC][/SIGPIC]

Filco TKL MX Brown

Offline davkol

  •  Post Editing Timeout
  • Posts: 4994
Programming
« Reply #1 on: Thu, 22 March 2012, 15:06:42 »
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum
« Last Edit: Mon, 10 December 2018, 13:50:28 by davkol »

Offline davkol

  •  Post Editing Timeout
  • Posts: 4994
Programming
« Reply #2 on: Thu, 22 March 2012, 15:09:15 »
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum
« Last Edit: Mon, 10 December 2018, 13:50:34 by davkol »

Offline MyNameIsFinn

  • Thread Starter
  • Posts: 263
Programming
« Reply #3 on: Thu, 22 March 2012, 15:24:51 »
Quote from: ripster;553818
Programming is a bit of a dead end career.  Read Isaac Asimov.  And that gameshow with that Jennings guy that thought he was so smart.

Future is in Web Design.

How in any way is programming a dead career?
[SIGPIC][/SIGPIC]

Filco TKL MX Brown

Offline alaricljs

  • I be WOT'ing all day...
  • ** Moderator Emeritus
  • Posts: 3715
  • Location: NE US
Programming
« Reply #4 on: Thu, 22 March 2012, 15:33:01 »
Quote from: MyNameIsFinn;553796
A: What are the uses of programming, Ex: Making Games
To bend a computer system to your will
ex: make software that does useful things (spreadsheets, tax returns, entertainment, make money)


B: What is the best starting language
The one to which you have easy access and facilitates your ability to do A
For instance if you want to make an advanced web thingie, PHP, ruby, or similar.


C: Try to explain to me exactly what "programming" is
See A.  Providing instructions to a computer in order for it to accomplish a task.

Also for some reason hacking and programming seem to go hand and hand, why is this, what are the similarities.
See A. The fastest way between any 2 points is to hop on someone else's back.  If there is a program out there that does what you need or nearly what you need, that's your starting point.

And blah blah blah because my message is too short (it's all in the QUOTE!)
Filco w/ Imsto thick PBT
Ducky 1087XM PCB+Plate, w/ Matias "Quiet Click" spring-swapped w/ XM Greens

Offline MyNameIsFinn

  • Thread Starter
  • Posts: 263
Programming
« Reply #5 on: Thu, 22 March 2012, 15:34:16 »
Quote from: davkol;553805
Read this: How to Become a Hacker and Instant Hacking

How to become a hacker states that I should begin using Ubuntu, I will be doing this, however, it also says to use Python, I checked and it seems that Python for Ubuntu isn't open source, what would you recommend?
[SIGPIC][/SIGPIC]

Filco TKL MX Brown

Offline davkol

  •  Post Editing Timeout
  • Posts: 4994
Programming
« Reply #6 on: Thu, 22 March 2012, 15:47:42 »
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum
« Last Edit: Mon, 10 December 2018, 13:51:03 by davkol »

Offline alaricljs

  • I be WOT'ing all day...
  • ** Moderator Emeritus
  • Posts: 3715
  • Location: NE US
Programming
« Reply #7 on: Thu, 22 March 2012, 15:48:30 »
Wait, what?  Straight from their home page:  Python is free to use, even for commercial products, because of its OSI-approved open source license.

Being on Ubuntu changes nothing in that regard.  If you really want to learn something I'd go with Debian as soon as you get the hang of Ubuntu.  Maybe skip Ubuntu altogether, but perhaps you need the step up.
Filco w/ Imsto thick PBT
Ducky 1087XM PCB+Plate, w/ Matias "Quiet Click" spring-swapped w/ XM Greens

Offline whiskerBox

  • Posts: 1037
Programming
« Reply #8 on: Thu, 22 March 2012, 16:09:19 »
A really fun way to learn some Java is by playing a Game called "code hero" <-- google it (costs $ but is fun and educational) similar to portal and minecraft.

I will probably get yelled at for saying this, but I really like VB(visual basic). Although I also work with Java, but I do not like it as much as VB or C#
"I'm on a mission to bring down GH's anarchy of moderators" -RIPSTER jr.

Offline davkol

  •  Post Editing Timeout
  • Posts: 4994
Programming
« Reply #9 on: Thu, 22 March 2012, 16:20:12 »
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum
« Last Edit: Mon, 10 December 2018, 13:51:14 by davkol »

Offline glossywhite

  • Posts: 64
Programming
« Reply #10 on: Thu, 22 March 2012, 19:33:40 »
Coding... pftt... read this before considering your career choice; coding is DULL, offers very few projects that return emotional and satisfactory reward (most code projects are giant, bespoke, corporate software suites that would drive you insane in a day). There's a massive difference between coding for enjoyment, and ruining that fun for a living.

Think carefully, choose wisely. Working in a chocolate factory sounds fab... until you tire of endless chocolate, and end up disliking your favourite treat.

Don't believe me? Take half an hour, a coffee, and read this article SLOWLY:
http://thedailywtf.com/Articles/Programming-Sucks!-Or-At-Least,-It-Ought-To-.aspx

I love programming a little in Javascript & Java... and I want that love to remain.

Offline keyboardlover

  • Posts: 4022
  • Hey Paul Walker, Click It or Ticket!
    • http://www.keyboardlover.com
Programming
« Reply #11 on: Thu, 22 March 2012, 19:50:12 »
I've been a professional programmer for over six years. I'll try to answer as best I can.

Quote from: MyNameIsFinn
A: What are the uses of programming, Ex: Making Games

It's more like what aren't the uses of programming. Every computer system you've ever used, either natively or on the internet, was programmed.

Quote from: MyNameIsFinn
B: What is the best starting language

There are many opinions on this...at the very least you should start with an object-oriented language. I recommend C#. In any case you should start by mastering one language. Once you've done that it's easier to learn other languages/technologies.

Quote from: MyNameIsFinn
C: Try to explain to me exactly what "programming" is

Computer programming is essentially the act of writing code which equates to instructions that tell the computer system what to do. A computer program called a compiler or interpreter (depending on the language) translates the code into machine-readable binary code (ones and zeros).

Quote from: MyNameIsFinn
Also for some reason hacking and programming seem to go hand and hand, why is this, what are the similarities.

Depends what you mean by "hacking". In it's purest sense, "hacking" essentially means some combination of tinkering/fixing/changing a system. I like to think of myself as "hacking" when I change code and make it better (refactoring) or when I'm fixing bugs/glitches in a system.

Offline MyNameIsFinn

  • Thread Starter
  • Posts: 263
Programming
« Reply #12 on: Thu, 22 March 2012, 19:55:43 »
Quote from: glossywhite;554035
Coding... pftt... read this before considering your career choice; coding is DULL, offers very few projects that return emotional and satisfactory reward (most code projects are giant, bespoke, corporate software suites that would drive you insane in a day). There's a massive difference between coding for enjoyment, and ruining that fun for a living.

Think carefully, choose wisely. Working in a chocolate factory sounds fab... until you tire of endless chocolate, and end up disliking your favourite treat.

Don't believe me? Take half an hour, a coffee, and read this article SLOWLY:
http://thedailywtf.com/Articles/Programming-Sucks!-Or-At-Least,-It-Ought-To-.aspx

I love programming a little in Javascript & Java... and I want that love to remain.

Im already insane, can't drive me more insane, not possibly.
[SIGPIC][/SIGPIC]

Filco TKL MX Brown

Offline MyNameIsFinn

  • Thread Starter
  • Posts: 263
Programming
« Reply #13 on: Thu, 22 March 2012, 19:56:25 »
Quote from: keyboardlover;554050
I've been a professional programmer for over six years. I'll try to answer as best I can.



It's more like what aren't the uses of programming. Every computer system you've ever used, either natively or on the internet, was programmed.



There are many opinions on this...at the very least you should start with an object-oriented language. I recommend C#. In any case you should start by mastering one language. Once you've done that it's easier to learn other languages/technologies.



Computer programming is essentially the act of writing code which equates to instructions that tell the computer system what to do. A computer program called a compiler or interpreter (depending on the language) translates the code into machine-readable binary code (ones and zeros).



Depends what you mean by "hacking". In it's purest sense, "hacking" essentially means some combination of tinkering/fixing/changing a system. I like to think of myself as "hacking" when I change code and make it better (refactoring) or when I'm fixing bugs/glitches in a system.

Thanks very helpful KL
[SIGPIC][/SIGPIC]

Filco TKL MX Brown

Offline keyboardlover

  • Posts: 4022
  • Hey Paul Walker, Click It or Ticket!
    • http://www.keyboardlover.com
Programming
« Reply #14 on: Thu, 22 March 2012, 20:07:26 »
You're welcome!

Offline hazeluff

  • * Vendor
  • Posts: 2384
  • Location: Vancouver, BC
  • 光復香港
    • Hazeluff
Programming
« Reply #15 on: Thu, 22 March 2012, 20:37:31 »
Quote
Python is free to use, even for commercial products, because of its OSI-approved open source license.

That sounds so retarded. == It's a language. Its like saying you can speak English FOR FREE!

I forget names...but are you "This Was A Triumph" on steam, op?
Fight For Freedom. Stand with Hong Kongers

Offline hazeluff

  • * Vendor
  • Posts: 2384
  • Location: Vancouver, BC
  • 光復香港
    • Hazeluff
Programming
« Reply #16 on: Thu, 22 March 2012, 20:44:49 »
KL covers it all.

As for uses of programming. A lot nowadays is software programming, to make tools for people to use to make things easier/entertainment.

Tho there's programming to do crunch numbers for us. Like it's used for lots of things.

So far I've used it to:

-Make games
-Program micro controllers (to make little toy line follower)
-Make Vector processing core (VHDL - FPGA).
-Image Processing (Verilog - FPGA).
-Signal Processing - Noise filter (C - DSK).

Yeah, what programming is is making instructions for a electronic machine to run. Most electronics are programmed in some way.
Fight For Freedom. Stand with Hong Kongers

Offline davkol

  •  Post Editing Timeout
  • Posts: 4994
Programming
« Reply #17 on: Fri, 23 March 2012, 02:36:39 »
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum
« Last Edit: Mon, 10 December 2018, 13:51:24 by davkol »

Offline Wildcard

  • * Esteemed Elder
  • Posts: 1046
  • Location: Fields of Columbia
  • When caffeine isn't enough
Programming
« Reply #18 on: Fri, 23 March 2012, 02:59:13 »
Quote from: davkol;553810
HTML is not programming. ~,^

Technically correct, HTML is a markup language (thus the ML at the end ). PHP and JavaScript, that's more programming for web.


Quote from: davkol;553805
Read this: How to Become a Hacker and Instant Hacking

Seriously? None of this is hacking. Unless you're talking about how to be a hack in the IT world. I think that was just a troll post.

BTW: The term "Hacker" is overly used and somewhat annoying. As in "Hack a Day" add some light bulbs to a battery to be a "Hacker". Or, someone who claims they're a hacker on youtube by modifying their phones bootrom. Or a script kitty calling themselves a "Hacker", or someone saying, look I just installed Metasploit, "I'm a Hacker Now"

You know who a real hacker is? Someone who doesn't call themselves one.

Sometimes you reach a point in computers/electronics where you just want to do "more" and that's when you learn to program.
« Last Edit: Fri, 23 March 2012, 03:12:30 by RiffRaff »

Offline Ekaros

  • Posts: 942
Programming
« Reply #19 on: Fri, 23 March 2012, 03:15:29 »
Quote from: ripster;553818
Programming is a bit of a dead end career.  Read Isaac Asimov.  And that gameshow with that Jennings guy that thought he was so smart.

Future is in Web Design.


So how do you think Internet works? As a whole, including every part? I'm starting to belive Internet is one of the most complex systems around, if you include all technologies that are used and needed to keep it up and running. HTML, TCP, IP are just small part of it...

Programming isn't going anywhere as long as we use computers...

Personaly I would start from something simple just to get familiar with basics, like loops, if-clauses, functions and such. Time is better spend learning those than fighting with compiler or strange memory managment ;D
So I should add something useless here yes? Ok, ok...
Filco 105-key NKRO MX Browns Sw/Fi-layout|IBM Model M 1394545 Lexmark 102-key Finnish-layout 1994-03-22|Cherry G80-3000LQCDE-2 with MX CLEAR
[SIGPIC][/SIGPIC]
Dell AT102W(105-key SF) (Black ALPS)|Steelseries Steelkeys 6G(MX Black) ISO-FI-layout|Cherry G84-4400 G84-4700 Cherry MLs

Offline mbc

  • Posts: 469
  • Location: Germany
  • -delete-
Programming
« Reply #20 on: Fri, 23 March 2012, 03:59:42 »
i would recommend starting with a language that fits your interests
e.g. if you want to program games try c# + xna ...

Offline captain

  • Posts: 703
Programming
« Reply #21 on: Fri, 23 March 2012, 04:21:34 »
http://ruby.learncodethehardway.org/

I recommend Ruby, but replace ruby in that URL with whatever other language you like. That's a good starting place.
Welcome to geekhack -- where we like to type -- but don't care so much about reading.

Offline keyboardlover

  • Posts: 4022
  • Hey Paul Walker, Click It or Ticket!
    • http://www.keyboardlover.com
Programming
« Reply #22 on: Fri, 23 March 2012, 06:24:48 »
Quote from: Ekaros;554410
So how do you think Internet works? As a whole, including every part? I'm starting to belive Internet is one of the most complex systems around, if you include all technologies that are used and needed to keep it up and running. HTML, TCP, IP are just small part of it...

Programming isn't going anywhere as long as we use computers...

Personaly I would start from something simple just to get familiar with basics, like loops, if-clauses, functions and such. Time is better spend learning those than fighting with compiler or strange memory managment ;D

Ripster is just jealous. He couldn't code his way out of a paper bag :D

Offline itlnstln

  • Posts: 7048
Programming
« Reply #23 on: Fri, 23 March 2012, 07:18:49 »
Quote from: MyNameIsFinn;553822
How in any way is programming a dead career?

I wouldn't call it a dead career, but it is becoming a commoditized skill, particularly when in comes to corporate IT and the requirements/solution model.  Also, from what I have seen, unless you work for a software/technology company, you pretty much have no chance in moving up very high in corporate IT.  Even with my, albeit limited, skill set and general knack for building kick-ass stuff, I could never make more than I can on the business side.  What would make me an average programmer in IT makes me worth my weight in gold for "the business."


Offline Aseral

  • Posts: 29
Programming
« Reply #24 on: Fri, 23 March 2012, 07:20:27 »
I think C is a very good first programming language. Many even call it a "low-level language"(it's obviously not low-level) but it helps you understand how things really work and gets you very "close to the metal". It was my first language and I must say everything after that just seemed easy.

Offline keyboardlover

  • Posts: 4022
  • Hey Paul Walker, Click It or Ticket!
    • http://www.keyboardlover.com
Programming
« Reply #25 on: Fri, 23 March 2012, 08:48:10 »
I know developers who have gone on into roles like architect, product manager, manager and executive positions among others. So "dead-end" career is pure bull****.

Offline itlnstln

  • Posts: 7048
Programming
« Reply #26 on: Fri, 23 March 2012, 08:56:45 »
Not to say you can't, but when you can outsource your development to a bunch of code jockeys overseas, being a programmer becomes limited.  In fact, we only employ a small number of true programmers.  Mostly we have tech leads, architects, managers, etc., while all of the actual programming is outsourced.  While our people know some programming, you don't need in-depth programming skills to do a lot of the higher-level jobs.  It's more about managing the people, QA, dealing with the business, etc. Unless you work for a very small company, the CIO isn't slinging code.  Neither do the directors or managers.

Mechanics don't lead car companies.


Offline keyboardlover

  • Posts: 4022
  • Hey Paul Walker, Click It or Ticket!
    • http://www.keyboardlover.com
Programming
« Reply #27 on: Fri, 23 March 2012, 09:43:39 »
Studies on outsourcing in recent years have shown that it is not viable for most companies, especially large companies. Outsourcing has resulted in a LOT more failed projects than in-sourcing has. Which is why most companies are now moving away from it.

Outsourcing is largely a fading trend now. You guys need to stay current with this stuff!

Don't get me started on all the problems that come with outsourcing programming. I've heard about large databases that got outsourced and when delivered, had no primary keys. Or projects that got shipped with so many bugs they were largely un-usable in production. Or projects that didn't even ship because they never got started and the customer kept getting the run-around for months!

And then what do customers do? They hire another outsourcing company, and then another, and then another. It's a vicious cycle that costs TONS of money, and then most of the projects fail anyway.

Outsourcing a threat to American programmers? That's, like, so 3-5 years ago.
« Last Edit: Fri, 23 March 2012, 09:46:43 by keyboardlover »

Offline keyboardlover

  • Posts: 4022
  • Hey Paul Walker, Click It or Ticket!
    • http://www.keyboardlover.com
Programming
« Reply #28 on: Fri, 23 March 2012, 09:48:31 »
Quote from: ripster
Not just outsourcing.  Obama and that Intel guy want to loosen up visas so we just import Indians and Asians.

This is good because I am pissed how much Adobe SW is.

They just want to increase the H-1B count. Which has been decreasing in the past 3-5 years.

That's not unusual, it happens all the time.

Offline nmd

  • Posts: 69
Programming
« Reply #29 on: Fri, 23 March 2012, 21:04:30 »
Skimmed all of this(skipping most) just so I could say the following: Python.

Sorry, I love it. JavaScript is ok too. >.>

Offline hashbaz

  • Grand Ancient One
  • * Moderator Emeritus
  • Posts: 5057
  • Location: SF Bae Area
Programming
« Reply #30 on: Fri, 23 March 2012, 23:56:00 »
I endorse KL's answers.  Here are some of my thoughts.

Quote from: MyNameIsFinn;553796
A: What are the uses of programming, Ex: Making Games

Software is ubiquitous.  All software requires programming.  I worked at a game studio during high school and college.  It's a lot of fun, but working in games is notorious for abusively long hours.  You have to be careful.

Quote
B: What is the best starting language

Dunno, there are lots of opinions.  Just pursue what interests you.  If that's games, find some books on game programming and learn the language(s) they use.  When I was in school Java was the introductory language.  Some schools use Scheme.  I think Python is trending right now.  Honestly it doesn't really matter.  I started by teaching myself BASIC, then moved into C, assembly language, then C++ and C#.  I now work mostly in Python and C++.

Quote
C: Try to explain to me exactly what "programming" is

I am really, really interested in this

The most basic description is writing instructions for a computer to follow, which accomplish a task.  Moving up a level from the "recipe" metaphor, you have objects that have behavior.  Programming is designing and building those objects and their interfaces with other objects to accomplish tasks in a way that is robust, maintainable, and readily understood by others.

Quote
Also for some reason hacking and programming seem to go hand and hand, why is this, what are the similarities.

I assume by hacking here you mean breaking into computers.  In that sense hacking and programming are associated because to be a good hacker you have to understand how computers work at a low level, and that means learning about programming.  Writing your own tools to assist you is a big help, and that requires programming.

In the larger, older, and more general sense, hacking means solving a problem in a clever way.  Hackers are tinkerers, and computers are an endlessly tinkerable diversion for their curiosity and drive to create.  You can only manipulate a computer so much before you get to a point where you have to learn how to code.

Quote from: glossywhite;554035
Coding... pftt... read this before considering your career choice; coding is DULL, offers very few projects that return emotional and satisfactory reward (most code projects are giant, bespoke, corporate software suites that would drive you insane in a day). There's a massive difference between coding for enjoyment, and ruining that fun for a living.

Think carefully, choose wisely. Working in a chocolate factory sounds fab... until you tire of endless chocolate, and end up disliking your favourite treat.

Don't believe me? Take half an hour, a coffee, and read this article SLOWLY:
http://thedailywtf.com/Articles/Programming-Sucks!-Or-At-Least,-It-Ought-To-.aspx

I love programming a little in Javascript & Java... and I want that love to remain.

Don't listen to this guy.  Every field has dull aspects, including software, and any career can get stuck in a rut and become uninteresting.  You can have a very rewarding career building useful and well-engineered systems even if you don't work on something sexy like games.  If programming fascinates you as it does many of us here, pursue it.  See if it fits.  My advice is to invest some time and money in some books and learn to do something that interests you, whether that's games, or web sites, or whatever.

Offline nmd

  • Posts: 69
Programming
« Reply #31 on: Sat, 24 March 2012, 00:40:45 »
How about if I say Python 3? :P Nails on a chalkboard?

Offline nmd

  • Posts: 69
Programming
« Reply #32 on: Sat, 24 March 2012, 00:52:04 »
Oh, well n/m that totally ruined the joke. Python 3 kind of screwed a lot of things up and a lot of libraries still haven't updated to it from 2.7.* because it doesn't really offer a huge benefit.

Offline quickcrx702

  • Posts: 214
  • Location: Hell
  • Ready to bomb with Vietnam tatted on my back
Programming
« Reply #33 on: Sat, 24 March 2012, 01:04:14 »
Quote from: MyNameIsFinn;553796


Also for some reason hacking and programming seem to go hand and hand, why is this, what are the similarities.


Because of bs movies.  I learned programming getting my bachelors degree, which by the way is unnecessary in IT until later in your career, and programming alone won't teach you how to be a "hacker" in the way that the media portrays the word.  I ended up going into systems and networks instead of programming.  It will teach you to write annoying line of business applications, and will put you in a thinking outside of the box mindset necessary to "hack."  Sorry for the quotation marks, but what the general population views as hacking is NOT how it is done in the real world.  You are MUCH more likely to learn to be a "hacker" by learning servers(Microsoft/Linux), phone stuff(blackberry enterprise server, various VOIP standards, etc), and networks(Cisco).  Example,  as a master of systems and networks, you can:
sniff all traffic on a network via arp spoofing, hardware ethernet taps, SPAN ports, etc.
watch EVERYTHING other people are doing without them knowing
spoof emails, or read other people's emails
spoof phone calls
hop VLANS and record VOIP traffic
gain full access to any computer that you have physical access to
recover deleted files, even after multiple hard drive formats
etc.

You do need to master both if you want to be a "1337 h4x0r" LOL, which in my experience very few people do.  Most programmers just write crappy line of business applications that they hate, and most systems and network guys just run around putting out fires and planning for projects.  Very few people combine everything.  You are HIGHLY unlikely to find a CCIE that is also a MCITP and can also write code.  Luckily, I've been a consultant for most of my career so I have to keep up with a lot more technology than someone pigeon holed in some corporate IT department.

Offline codersean

  • Posts: 4
    • http://sean-long.com
Programming
« Reply #34 on: Fri, 30 March 2012, 15:14:07 »
MyNameIsFinn,

Answer these questions to figure out if programming in a career path for you:

- Can you sit in one place for long periods of time?
- Do you like having to learn new things all the time?
- Can you stare at a monitor for 6+ hours a day?
- Are you the kind of person who likes to solve puzzles and doesn't like quitting when a solution is not immediately obvious?

For a starting programming language I would actually recommend C, not the easiest and not the hardest to learn. The benefit of C is that it is just above the hardware layer so you still get a sense of what is going on under the covers. From there I would pick up Ruby or Python to learn about object oriented programming, skip C++ it sucks (I program in it everyday for work). As you are learning Ruby or Python remember that they and many other "scripting" languages are written in C.

The most useful book in my collection is The C Programming Language (The White Book) which is written by the original authors of C, it is concise and to the point.

Finally, why should you believe a word I say:
I am a software engineer and have been programming professionally for 10 years with 10+ years prior to that in schooling and free time.

Good luck on your quest.
Work Rig-> Filco MJ2 TKL Cherry MX Browns

Offline Daniel Beardsmore

  • Posts: 1874
  • Location: Hertfordshire, England
  • RIP
    • Boring twaddle
Programming
« Reply #35 on: Mon, 09 April 2012, 18:47:07 »
I wish I could still recommend BBC BASIC. There's nothing on earth now that could substitute a BBC Micro, User Guide (and the Advanced User Guide), and any DFS manual that covers the catalogue sector contents (Watford's for example). Simple CPU, simple procedural BASIC, file system so easy you can edit the sectors by hand – it's a nutshell of most of what anyone needs to know. Low-level enough to ensure that you know what machine code is, tracks and sectors, all the little details that are key to understanding how a computer really works, but at the same time, it's so simple and so logical that it's not difficult.

The problem now is that there's a very slight paradigm shift in the development of user-level software that 8-bit machines no longer leave you suitable for: multitasking. Single-threaded, synchronous applications are a nightmare, but they're everywhere. Think of every time you've asked Outlook to do something and it's locked up solid while it's thinking about it, and you can't use any of its other windows.

Worse, playing nice with other software is hard. Windows makes this far harder than it needs to be, even simple things like managing your file associations without butchering the system (Apple's manifest system is much more maintainable as programs only advertise services). On a one-disc-per-program microcomputer, this doesn't matter. On a hard drive machine, one naughty program can make a real mess, especially if it makes problems appear to come from someone else's software (cf Photoshop Elements blocking the escape key in all other programs, particularly if, but not limited to, when Catalyst Control Center is running – HOW did they stuff that up???)

C is pretty hard going for a beginner, and a touch on the obtuse side – it's not quite gratifying enough, and little mistakes will just cause so many crashes you'll throw the computer out the window. You do have to learn that computers will do everything you say, no matter how stupid ("Yes I really do want to jam the escape key across the whole system!") but C takes this a little too far for anyone but the most desperate beginner. C is a language best learnt with a mentor to hand, something I never had, so I never did get my head around it properly. Pointers, pointers to pointers … Man alive.

Other pitfalls include text representation – be careful about starting out with the assumption that all printable characters fit into a single byte, because they don't. Make sure you start out with a language and framework that are fully end-to-end Unicode, and always work in characters, not bytes. This means when nutters like myself see fit to enter minus “−” signs and Klingon and other nonsense into your app, it won't come back with "????? ?? ????? ??? ????????????".
Bore Awards
Most Boring Person on the Planet – 2011 Winner

Offline 1395985

  • Posts: 28
Programming
« Reply #36 on: Mon, 09 April 2012, 19:01:59 »
Yuck, programming. A cold and lonely place, where noone can see the fruits of your rewards. Give me PHYSICAL hardware, a soldering iron and a pair of pliers - FAR more rewarding! :D

With programming, the rules can be changed at any moment, without warning. With hardware, natural laws are natural laws - physics never changes! :D

Offline Daniel Beardsmore

  • Posts: 1874
  • Location: Hertfordshire, England
  • RIP
    • Boring twaddle
Programming
« Reply #37 on: Mon, 09 April 2012, 19:11:41 »
Depends who's writing the specifications ;-)
Bore Awards
Most Boring Person on the Planet – 2011 Winner

Offline captain

  • Posts: 703
Programming
« Reply #38 on: Tue, 10 April 2012, 01:52:11 »
So, Python <3 ?
;-)

I'm liking Ruby lately, but shell scripting is how I make computers do my bidding. :-D
And making a franked up broken computer do what you want, despite Apple refusing to allow it (by Dog no one needs THAT!) is extremely rewarding!
« Last Edit: Tue, 10 April 2012, 02:04:53 by captain »
Welcome to geekhack -- where we like to type -- but don't care so much about reading.

Offline Ekaros

  • Posts: 942
Programming
« Reply #39 on: Tue, 10 April 2012, 05:56:13 »
Having "fun" trying to do some very basic networking course stuff with C, still it's kind nice how you can manage memory and move stuff by byte and it really doesn't care about what the stuff is... It does take a bit to get your brains around it again, no pointers for me thanks ;D
So I should add something useless here yes? Ok, ok...
Filco 105-key NKRO MX Browns Sw/Fi-layout|IBM Model M 1394545 Lexmark 102-key Finnish-layout 1994-03-22|Cherry G80-3000LQCDE-2 with MX CLEAR
[SIGPIC][/SIGPIC]
Dell AT102W(105-key SF) (Black ALPS)|Steelseries Steelkeys 6G(MX Black) ISO-FI-layout|Cherry G84-4400 G84-4700 Cherry MLs

Offline davkol

  •  Post Editing Timeout
  • Posts: 4994
Programming
« Reply #40 on: Tue, 10 April 2012, 06:33:27 »
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum
« Last Edit: Mon, 10 December 2018, 13:51:52 by davkol »

Offline Daniel Beardsmore

  • Posts: 1874
  • Location: Hertfordshire, England
  • RIP
    • Boring twaddle
Programming
« Reply #41 on: Tue, 10 April 2012, 07:13:35 »
C APIs on the other hand will have void * parameters for callbacks. Until I realised that PHP had lambdas, I didn't understand how you were supposed to use the callbacks (e.g. preg_replace_callback) – I imagine you're supposed to pass in a lambda and make use of a closure if you want a custom parameter.

LISP is insane :)
Bore Awards
Most Boring Person on the Planet – 2011 Winner

Offline davkol

  •  Post Editing Timeout
  • Posts: 4994
Programming
« Reply #42 on: Tue, 10 April 2012, 07:32:03 »
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum
« Last Edit: Mon, 10 December 2018, 13:52:05 by davkol »

Offline lorem3k

  • Posts: 128
    • http://twitter.com/#!/lorem3k
Programming
« Reply #43 on: Fri, 13 April 2012, 18:57:09 »
Which language would you guys say is a better first language, C++ or Java?
Leopold FC200RT/AWN | Logitech G400 | Sennheiser HD25-1 II | Pounds in the fridge, hundred stacks in the armoire

Offline Djuzuh

  • Posts: 1127
Programming
« Reply #44 on: Fri, 13 April 2012, 18:57:33 »
java.

Offline stingrae

  • Posts: 267
Programming
« Reply #45 on: Fri, 13 April 2012, 19:31:19 »
Quote from: Djuzuh;574970
java.
It depends on what you want out of programming. If you want to get somewhere that will be using C++ start with C++. It is slower to get to the same stuff java can do but learning it makes other languages of the curly bracket family easier, C#/Java/Action Script/Javascript and more become available because logic and syntax wise once you are good with C++ you really can't make mistakes in most of those languages and only really need to learn their libraries.

The problem is C++ is full of pitfalls for the new programmer which is why Java/Python are good starting points. On the other hand I reckon it evens out at some ends. Learning C++ after the ease of Java for some people has been nightmarish because everything is done for you in Java's libraries where as C++ is 'just' a language and a very powerful one at that.

This said I am switching to Java slowly because prototyping my work is a pain in C++ because I have to deal with unexpected errors and usually when I don't have time to. Let alone the pain of having to compile for linux as well.

So I think if you just want a taste of programming C#/Java and even something as simple as python or VB (god its terrible but you can make stuff quickly) can do that. C++ is literally if you want to do things the hard way which could eventually pay off as you will understand other languages once you master C++. This is just my crazy point of view mind you after programming for 4 years in C++ I think everyone goes crazy.

I want to learn lisp at some point due to an interest in genetic programming.
Filco Ninja Tenkeyless  -Noppoo Choc MiniCm Storm Quickfire Rapid

Offline Djuzuh

  • Posts: 1127
Programming
« Reply #46 on: Fri, 13 April 2012, 19:49:10 »
Imo, if you want to start the hard way, you should start with some C.

CPP is at the same time low level enough to not be able to ignore how it works in the inside, while being high level enough that it's not directly mapped to asm so you have a hard time understanding everything.

It's also, as you said, full of pitfalls. It's some kind of random patch/pre compilation macros added to C so it can support more things. It's a real mess imo. The only reasons it's so widespread is that it gives you the power of object programming without having to give away performance.

I think it's a really bad choice as first language. Imo it is best learned after learning C and learning a higher level object language. So you know what object programming is, and you know how it works in the inside.

If you want to learn programing for a project that is made in CPP, you are right, learn cpp first. But if not, you're better off with something else imo.

Offline rknize

  • * Administrator
  • Posts: 1731
  • Location: Chicago
    • metaruss
Programming
« Reply #47 on: Fri, 13 April 2012, 20:54:46 »
[soapbox]

Having worked on many different embedded operating systems from top to bottom, I always enjoy watching people complaining about this language or that.  Use Python because it's pretty.  Use C++ because C is obtuse.  Use Java because memory management is hard.

For me, the real fun is in that middle place where all the ugliness is.  That place that everyone complains about.  That place where memory isn't managed for you because you are the one doing it for client.  That place is pretty much always written in C.

The fact is that computer hardware sucks.  The machines get more and more complicated and more and more quirky.  Someone has to hide all that from you Java programmers.  Doing that is a messy business.  It's also really rewarding.  In Java, you don't need to worry about the fact that the instruction prefetcher on CPU core 1 gets quirky every 18.2 hours because some hardware timer overflows.  You don't need to worry that part of the L2 cache is unreliable in the last 1MB of RAM.  You don't need to worry about power supply noise flipping bits on your main transport bus.  Must be nice.

[/soapbox]

Had to get that off my chest.  Thanks!
Russ

Offline chel-

  • Posts: 134
  • Location: canada
Programming
« Reply #48 on: Fri, 13 April 2012, 22:54:19 »
Quote from: lorem3k;574968
Which language would you guys say is a better first language, C++ or Java?

I'd choose C++ personally but it depends what you want to do...once you learn one the other will be easy to pick up anyways.

For the OP I haven't read the entire thread but I'd recommend Python first.

Offline mkawa

  •  No Marketplace Access
  • Posts: 6562
  • (ツ)@@@. crankypants
Programming
« Reply #49 on: Sat, 14 April 2012, 00:24:38 »
the best first step language really depends on your background, imo.

if you have a math background, i would go with scheme and use the scheme book (abelson and sussman)

if you have a hard science background, i would go with python. it makes sense, and doesn't complicate more than it needs to. it also has great numerical support these days.

if you have a EE (analog) background, i would go with java. analog EEs write the worst code i have ever seen. they really need something that stresses syntactic structure.

if you have a EE (digital) background, i would go with C (like, C99). think of it as VHDL without the finitist restrictions ;)

if you have no science background, i would step even further back and start with 0th step tools. this is going to sound a bit out of left field, but try a bunch of pseudo-programming tools, like LOGO, lego mindstorms, whatever. become used to the most basic of concepts: values, control flow, etc. before you attempt to step into the deep end. you might be shocked to learn that many people with BS's still don't understand these things, and it is my pet theory that it is really because they often skip this 0th step of comfort with fundamentals and are just dumped into a nasty, strict turing complete world without getting a chance in the kiddy pool.

to all the brilliant friends who have left us, and all the students who climb on their shoulders.