3 Replies - 615 Views - Last Post: 01 April 2017 - 08:25 PM

#1 garrettjeewon  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 2
  • Joined: 01-April 17

General Programming Qs (Just want someone to talk out my issues with)

Posted 01 April 2017 - 04:00 PM

Hey! I am a 15 year old in highschool and I have worked extremely hard in school. I am taking a APCS course right now and have really liked it. I've taken it upon myself to learn python and I think this could be my career. I have a couple questions. What are the benefits of going to college for programming? My whole life I've worked for straight As but now I have seen the countless stories of people succeeding beyond belief and being self-taught! Just the other day I was at a hackathon and the CTO explained to me how he was self-taught. A second question is how many languages would I need to know for say application-type programming? I know python and JS are good for getting things done quickly and efficiently but I just want to know the scope of what I might be taking on. I like to plan. One of my last questions is how the job outlook REALLY is. I have read the projections but I know often estimates do not model the real world terribly well. Since most of you probably are working class people I just want to know basic stuff like networking, career progression, general work day etc. Anyone who doesn't have time to answer please don't feel forced to just exit! I am simply looking for a teacher to begin my journey with! Thanks :)

Is This A Good Question/Topic? 0
  • +

Replies To: General Programming Qs (Just want someone to talk out my issues with)

#2 jon.kiparsky  Icon User is online

  • Screw Trump (before he screws you)
  • member icon


Reputation: 10625
  • View blog
  • Posts: 18,183
  • Joined: 19-March 11

Re: General Programming Qs (Just want someone to talk out my issues with)

Posted 01 April 2017 - 05:26 PM

Quote

What are the benefits of going to college for programming?


There's a lot to know about programming, and most of it is not obvious. (This is obvious: if these things were obvious, people wouldn't have spent decades figuring them out.) It's not even obvious what you need to know - most self-taught programmers think that programming is about "coding", but real programmers know that writing the code is just one of the steps and it's not the hardest or the most interesting one. If you're interested in being a programmer, and you have the opportunity to study computer science in a college setting, you should definitely do it. It's absolutely possible to pursue a career in programming without that degree, but it seems to me that there's not much point in missing the chance to learn the fundamentals.

Quote

A second question is how many languages would I need to know for say application-type programming?


Really, you need to know two, plus the next one. That is, learning one language well will get you started. Learning a second language well will help you get the parts that you missed in the first one. After that, you'll learn languages as you need them and you'll find that it's not actually that hard once you know something about how languages work. Going back to the first question, if you've taken a compilers course and maybe a version of Abelson and Sussman's SICP then you'll know pretty much everything you need to know to reason about how a language does what it does. But even without those courses, if you learn two languages which are reasonably distinct from each other you'll be in good shape.
The number of languages you know is not actually that interesting a number. It's how well you think about problems that an employer cares about.

Quote

One of my last questions is how the job outlook REALLY is.


Let me put it this way: I don't know a single programmer who doesn't have a strategy for dealing with recruiters. There are a lot of people looking for good programmers now. The hard thing is that right now you also have a lot of people coming into the market because they hear there's a lot of jobs. You're going to be coming in behind that wave - what the outlook will look like then, I don't know. But I'm willing to be that if you have a CS degree and an internship or two, and you're a curious and intelligent person who people see as being a good gamble, you'll certainly be able to land a junior-level job on some team somewhere. After that, it's up to you.
Was This Post Helpful? 2
  • +
  • -

#3 garrettjeewon  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 2
  • Joined: 01-April 17

Re: General Programming Qs (Just want someone to talk out my issues with)

Posted 01 April 2017 - 07:37 PM

What would be a good complimentary language to Python? That is what I am currently studying and I am liking it.
Was This Post Helpful? 0
  • +
  • -

#4 jon.kiparsky  Icon User is online

  • Screw Trump (before he screws you)
  • member icon


Reputation: 10625
  • View blog
  • Posts: 18,183
  • Joined: 19-March 11

Re: General Programming Qs (Just want someone to talk out my issues with)

Posted 01 April 2017 - 08:25 PM

Python's sort of in the middle of things - you can do functional stuff and object-oriented stuff and straight-up imperative stuff, and you can write for the web with django and of course you can do a lot of mathy stuff with numpy, and there's the data analysis tools, and of course you can talk to C code if you want to do that sort of thing. So it's hard to find something that's really complementary - most languages have a sweet spot, python sort of moves into everyone else's sweet spot and says howdy.
That being said, you might want to try playing with some flavor of Lisp, since that's an approach to programming that's not much like what you've got in python. There's a few things you could do, Common Lisp and Scheme being the obvious ones but you might also enjoy clojure, which runs on the JVM, so you can talk to Java objects. Not one I've played with a lot, but people seem to get a kick out of it. Lisps, particularly Scheme, are strongly associated with more academic stuff - they're typically seen as something you learn in school and then move along from, but they have influenced a lot of languages, so they're worth looking at.
Another interesting idea might be Scala. That's not as common in industry these days, but it's an interesting language, influenced by ML, which is another old-school functional programming paradigm. Like clojure, Scala runs on the JVM, but it's a very different language.
If you want to learn something a little more mainstream, Java or C would be reasonable. Those would take you back to more single-paradigm programming, OO or imperative respectively, and force you to discipline your mind to accomplish new results while staying within a more constrained mindset. C is something that'll appeal to you mostly if you feel like you might want to work on hardware, Java is more of a well-established tool for applications and web programming. I'm not really sure what Java is up to these days, but I learned a lot from it when I used it in classes back at UMass.

Basically, you could make a case for just about anything if you're starting from python - just as long as you stay away from PHP you should be fine.
Was This Post Helpful? 0
  • +
  • -

Page 1 of 1