I know Java, what language should I learn next?

Jack Smith on Yahoo! Answers asked:

I know Java, what language next if majoring in Game Development?

I just finished an AP computer Science class, and I feel extremely comfortable with Java. Now, I want to learn another programming language. I plan on majoring in Game Development in college, and I know C++ is the main language used for video games. However, C++ is extremely expansive and difficult to understand, so I think it would be pretty difficult to teach it to myself. I’m not very interested in C# either, since I have no interest in programming for windows. So, what programming language should I go to next?

Java is a good object oriented language to start with. You may want to add either a low(er) level language (c, c++, assembly, etc.) or a good higher level language (python, ruby, etc.)

If you go low level you’ll have more flexibility to create higher end, platform-specific games. If you go high level you’ll have the flexibility to quickly and painlessly create web apps and games.

Side note: I would consider studying C# to be a sideways move, since it’s very similar to Java and if you’re comfortable with Java picking up C# would really just be about learning some syntax. But I digress…

That said, it really is a matter of preference. If I were you, I’d ask myself what type of games I want to build and pick a language based on what those kinds of games tend to be written in.

Do I need a second bachelor’s degree to get a job in programming?

rays0688 on Yahoo! Answers asked:

Is a second Bachelor’s degree really necessary for learning how to program?

I received my Bachelor’s in Economics without any problems. I did 5 years at my college but that is because I took fun classes, as I like to call them(photography,chemistry,philosophy). I decided to go back to college for a Bachelor’s (BS) in computer science. I am taking introductory courses in computer science, and I see that too much time is required for this subject. Economics required a lot of research and calculus, but it was fun. The stuff I am doing now, in computer science, PYTHON, is not easy, but I am doing well with the homework assignments. The only problem is I am seeing too many opportunities pass by me because I decided to get a 2nd Bachelor’s degree.

The main question of mine is, “Can I learn how to program on my own?” I believe that I can learn it faster than I can at college without skipping chapters. The college syllabus skips chapters. College is making me hate computers, but when I was learning how to program on my own, I loved it. It was difficult, but a difficult hobby is intriguing…to me.

Thank You if you’ve read my optional (detail) completely, and Thank You if you provided an answer or advice.

My personal view is that I would rather hire someone with a great portfolio and no degree than a degree and no experience/portfolio.

Edit: This is backed up with the anecdotal evidence of my own experience. Some of the best developers I know never got a degree in CS/CE.

A degree is “easier” than going without one because it’s a piece of paper that says to employers, “hey, this guy knows what he’s talking about.” But there are other ways to communicate that, primarily through a portfolio of projects you’ve written, open source projects you’ve contributed to, people you’ve done work for (whether paid or not).

Additionally, a BS will likely require you to spend very little of your time actually writing code or learning architecture or best practices. Instead most of your time will be spent studying other subjects entirely simply because they are required by your college.

That said, there’s nothing wrong with a degree. It’s the path most developers take to enter the industry. If you don’t get one you will have to work harder to break in because you don’t have that piece of paper.

To make a long story short, you can definitely do it on your own. But you will have to motivate yourself, actually do work for yourself and others, and build a solid portfolio to show to employers.

How much time should I spend learning Python before moving to C++?

Brayden on Yahoo! Answers asked:

How much time should I spend learning Python before moving to C++?

I want to know how in depth I should get into Python programming before moving to learning c++. Thanks!

The question is impossible to answer on its own. It depends entirely on what your goals are.

If you’re interested in building software or a career in development and the applications you want to design are best served by a high-level, interpretive language like Python, the answer is you should learn C++ when your work is best served by C++.

The design practices you learn by learning Python well will serve you well in any other language. It’s primarily a syntax change once you’ve got the fundamentals down. That said, if you just want to have a tool set that includes both a high-level language and a good compiled, intermediate-level language than it makes sense to study C++ as well.

As far as timing goes, I wouldn’t bother starting a new language until you are comfortable with a solid foundation in the first language. Be able to write a basic program in Python, such as an API wrapper or a web scraper. Understand generators, lambdas, linked lists, etc. Be able to write good, readable code. Once you’re comfortably at that place in your efforts, go ahead and build some projects in C++.

The idea is that you’re not studying to become a good “Python programmer” or “C++ programmer” but a good programmer, period. Beyond that language is just syntax.

Anyone disagree with my answer? What would you recommend?

Python News Roundup – 5/10

Sorry for the delay, real life took it’s share of my time this week.

Python

News

Together, we can work to make the tech world a better place to work for everyone, and in doing so, we make the wider world a better place for all.

Tutorials

Tools and Notable Repos

  • Arrow is a module for more usable date-time handling.
  • Ivan Idris has posted a collection of links to 76 different tutorials. It doesn’t appear to be organized in any particular way, but still a solid resource if you’re looking for things to learn.
  • EditorConfig is a Sublime Text plugin that helps you define and maintain consistent coding styles between IDEs and text editors.
  • Vimpy is a plugin for Vim which automatically adds import lines to your Python code.

Articles and Discussions

Books

Python News Roundup – 5/7

New tool releases, PyOhio seeking proposals, goodies in the standard library, some best practices, and some dirty tricks.

Python

News

  • PyOhio is looking for proposals for talks and other contributions.
  • mxODBC has been updated to prevent a fault with 2.7.4. mxODBC is an ODBC interface for Python 2.x.
  • Wing IDE released it’s 4.1.13 version. They describe it as a minor release with lots of bug fixes, and improved project load times.
  • Boston CPython recently ran a sprint for new contributors. It’s actually pretty cool to read about (as a beginner myself) ways that people new to the project can quickly close so many tickets.

    Here was the pitch:

    Want to contribute to Python? Join us for a 1-day development sprint on the CPython language implementation and standard library. This event is focused specifically on new contributors to the language! Several committers and experienced contributors will be with us to help with the mechanics of the contribution process as we triage tickets and make progress on bugs.

    Our goal is for everyone to have submitted at least one patch by the end of the event!

    20 new CPython developers got together and made progress on almost 40 tickets that afternoon:

    Awesome!

Tutorials, Tools and Articles

General Programming

News

  • None at this time.

Tutorials, Tools and Articles

  • None at this time.

Things I Learned Today

Things I learned today:

  1. Don’t get discouraged.
  2. Listening to good music can keep you productive.
  3. When passing ints into a string for a SQL query, you need to account for instances where a null value would render the query invalid. (Digging that out of 2,000+ lines of code was not easy for me).
  4. Pulling results from a query is not a good idea if the query doesn’t return results (copy-and-paste herp).

Python News Roundup – 5/3

Some really cool posts today, including an article on building your own API and another demonstrating the construction of a template engine.

Python

News

Tutorials, Tools and Articles

“This page shows the results of running a Gist downloaded from GitHub[...] Once the code in the Gist has finished running, you can type into the console and investigate its results.”

General Programming

News

  • None at this time.

Tutorials, Tools and Articles

  • None at this time.

Python News Roundup – 5/1

It’s been a busy last couple of days in Python land. Recipes, articles and APIs… oh, my.

Python

News

Tutorials, Tools and Articles

  • Need help managing various virtualenvs for different projects? Take a look at virtualenvwrapper.
  • Here’s a really cool recipe to create a temporary email inbox with lots of messages. It’s great for testing in any application that is made to interact with email.
  • The Neckbeard Republic released a new video explaining dunder functions (functions beginning and ending with “__”). Apart from learning what they are for the video teaches some useful tips you can take advantage of.
  • The Republic also released a shorter video in response to a thread on /r/python, this one on using super() and method resolution order.
  • One way to build a following on Twitter is to Favorite Tweets on mass with fav.py. The script lets you specify a searchterm and quantity and starts looking for matching tweets, it even looks for Tweeters you’re not already following and who have a ratio of more followers to following. Even if you don’t use it for the purpose of building your Twitter base it’s a good example of creative use of the Twitter API.
  • Create some awesome, detailed map visualizations quickly in just a few lines of Python with Vincent.
  • LISYNP posted a brief explanation of yield and generators.
  • This is an informative post which runs through five projects written specifically to compare five different frameworks/technologies, including Lua, Emacs, Go, Flask, and Erlang.
  • If you’re a glutton for punishment and would like to extend your suffering to your mobile device, this post compares ten Python tablet editors on iOS and Android.

General Programming

News

Tutorials, Tools and Articles

Python News Roundup – April 29th

Rather than spamming a million small posts I’ve decided to combine news and articles that are not original to this site into a regular cumulative update. Lots of news in this update, read on.

Python

News

Tutorials and Articles

General Programming

News

  • None at the moment.

Tutorials and Articles

Things to Know Before Starting a Django Project

Django logo

Django logo (Photo credit: Wikipedia)

As someone who’s about to start a Django project, this is a great perspective to read beforehand. 11 Things I Wish I Knew About Django Development Before I Started My Company is just what it sound like: a list of thoughts on starting a Django project given perfect hindsight.

The tips range from the simple (start off with the right directory structure) to some of the more complex (data stores and process monitoring). All are one person’s opinion, but it’s definitely an opinion worth considering before you jump into your own venture.

Follow

Get every new post delivered to your Inbox.

Join 204 other followers