Hobbyist - Python vs. other languages

F

fprintf

I have been playing with computers since I first learned to program
moving shapes on an Atari 800XL in BASIC. After many years of dabbling
in programming languages as a hobbyist (I am not a computer scientist
or other IT professional), I have never found a way to stick with a
language far enough to do anything useful. I learn all about loops
and data structures and functions/methods etc. but never get to create
a program that will do anything of value that I can't more easily do
via freeware. Well, except the slot car timing system I wrote in C++
for Linux many moons ago.

Honestly Python seems like a breath of fresh air and possibly a way to
get back to my BASIC roots, you know, programming just for the fun of
it.

Since I don't have a specific problem to solve, besides
Pythonchallenge (which I found very cryptic), and Project Euler (which
I found beyond my mathematics skills), is there a place to go for
increasingly difficult problems to solve? I have followed a number of
the recommended online tutorials that contain a logical progression of
problems and yet they all end at the point where a person has enough
knowledge of the syntax, but not really enough to do anything.
 
M

Mike Driscoll

I have been playing with computers since I first learned to program
moving shapes on an Atari 800XL in BASIC. After many years of dabbling
in programming languages as a hobbyist (I am not a computer scientist
or other IT professional), I have never found a way to stick with a
language far enough to do anything useful.  I learn all about loops
and data structures and functions/methods etc. but never get to create
a program that will do anything of value that I can't more easily do
via freeware. Well, except the slot car timing system I wrote in C++
for Linux many moons ago.

Honestly Python seems like a breath of fresh air and possibly a way to
get back to my BASIC roots, you know, programming just for the fun of
it.

Since I don't have a specific problem to solve, besides
Pythonchallenge (which I found very cryptic), and Project Euler (which
I found beyond my mathematics skills), is there a place to go for
increasingly difficult problems to solve? I have followed a number of
the recommended online tutorials that contain a logical progression of
problems and yet they all end at the point where a person has enough
knowledge of the syntax, but not really enough to do anything.

I've noticed that there's a gap between learning the syntax and
actually being able to do something myself. It's pretty annoying.
However, all you need is to come up with some projects that you'd like
to do, such as inventorying some collection you have (CDs, DVDs,
Clocks, whatever). Then you have a place to start.

The next step is to break the project down into smaller parts until
you have parts to tackle. Let's say you want to inventory your DVDs
for example. First, you'd need to figure out how much data about each
title you want. Examples might include Title, Director, top 3 actors,
price, and purchase date. Once you know what you want to store, you
can learn about data persistence (i.e. databases!).

Or you could join a local Python Users Group or an open source
project. I learn a lot just helping people on this and other Python
lists.

Mike
 
B

bearophileHUGS

fprintf:
and yet they all end at the point where a person has enough
knowledge of the syntax, but not really enough to do anything.

A programming language is a tool to solve problems, so first of all:
do you have problems to solve? You can create some visualizations,
some program with GUI, some networked code to download things and
process them, etc.

Another thing is that you probably have to learn beyond syntax, you
can learn about GUIs, network protocols, PyGame, mathematics, some
science, etc, they will give you both more things to learn (about the
language too) and problems/ideas to solve.

Bye,
bearophile
 
M

Matthew Fitzgibbons

fprintf said:
I have been playing with computers since I first learned to program
moving shapes on an Atari 800XL in BASIC. After many years of dabbling
in programming languages as a hobbyist (I am not a computer scientist
or other IT professional), I have never found a way to stick with a
language far enough to do anything useful. I learn all about loops
and data structures and functions/methods etc. but never get to create
a program that will do anything of value that I can't more easily do
via freeware. Well, except the slot car timing system I wrote in C++
for Linux many moons ago.

Honestly Python seems like a breath of fresh air and possibly a way to
get back to my BASIC roots, you know, programming just for the fun of
it.

Since I don't have a specific problem to solve, besides
Pythonchallenge (which I found very cryptic), and Project Euler (which
I found beyond my mathematics skills), is there a place to go for
increasingly difficult problems to solve? I have followed a number of
the recommended online tutorials that contain a logical progression of
problems and yet they all end at the point where a person has enough
knowledge of the syntax, but not really enough to do anything.

My situation's a bit different because I code for a living, but I also
code sometimes for the heck of it. I come up with small, hobby projects
one of two ways. (1) There's a whole lot of comp sci stuff out there
that I don't know. So when I come across a new concept, pattern, etc., I
write a little implementation. E.g., one day I was reading about how
someone used memoization in a certain problem (don't remember what), so
I thought "I bet I could do that as a decorator." So I did. (2) If you
have some simple task, write a program to do it (even if there's a
program out there already). E.g., I recently took a trip to Japan and
decided to learn the kana before going. I found a website to help me
learn them, then implemented my own version in Python for the heck of it.

If you just examine the things you do with a computer, and challenge
yourself "I bet I can do that in 100 lines of Python," I think you'll
find no shortage of projects.

-Matt
 
M

Mensanator

I have been playing with computers since I first learned to program
moving shapes on an Atari 800XL in BASIC. After many years of dabbling
in programming languages as a hobbyist (I am not a computer scientist
or other IT professional), I have never found a way to stick with a
language far enough to do anything useful.  I learn all about loops
and data structures and functions/methods etc. but never get to create
a program that will do anything of value that I can't more easily do
via freeware. Well, except the slot car timing system I wrote in C++
for Linux many moons ago.

Honestly Python seems like a breath of fresh air and possibly a way to
get back to my BASIC roots, you know, programming just for the fun of
it.

Since I don't have a specific problem to solve, besides
Pythonchallenge (which I found very cryptic), and Project Euler (which
I found beyond my mathematics skills), is there a place to go for
increasingly difficult problems to solve? I have followed a number of
the recommended online tutorials that contain a logical progression of
problems and yet they all end at the point where a person has enough
knowledge of the syntax, but not really enough to do anything.

Don't overlook comp.lang.python as a source.

Can you answer every problem posted? If not, you've much
to learn. And solving them, even if you never reply, is a
great learning experience.

I try to reply when I think I have an answer, often to be
disappointed by someone else's much better answer. But I see
such as much for my benefit as for that of the OP.
 
L

Luis M. González

I have been playing with computers since I first learned to program
moving shapes on an Atari 800XL in BASIC. After many years of dabbling
in programming languages as a hobbyist (I am not a computer scientist
or other IT professional), I have never found a way to stick with a
language far enough to do anything useful.  I learn all about loops
and data structures and functions/methods etc. but never get to create
a program that will do anything of value that I can't more easily do
via freeware. Well, except the slot car timing system I wrote in C++
for Linux many moons ago.

Honestly Python seems like a breath of fresh air and possibly a way to
get back to my BASIC roots, you know, programming just for the fun of
it.

Since I don't have a specific problem to solve, besides
Pythonchallenge (which I found very cryptic), and Project Euler (which
I found beyond my mathematics skills), is there a place to go for
increasingly difficult problems to solve? I have followed a number of
the recommended online tutorials that contain a logical progression of
problems and yet they all end at the point where a person has enough
knowledge of the syntax, but not really enough to do anything.

Are you interested in web development?
This could be a very good way to use python for doing useful things,
since any app you create for the web can be instantly available to
thousands of people. And now you have Google App Engine, which is a
new and free way to get your python app online.
Actually, any problem you may want to solve should have some kind of
graphical interface if you want your app to be used by other people.
So why not giving your apps a web interface? It has many advantages,
and it seems to be the way to go today.
 
E

Enrico Franchi

A programming language is a tool to solve problems, so first of all:
do you have problems to solve? You can create some visualizations,
some program with GUI, some networked code to download things and
process them, etc.

It's surprising how hard is this part. I quite like learning new
languages, and of course this has the same kind of problem: finding
problems to solve.

Moreover, if I *need* a program, I usually need it quickly, and so it is
wise to use a well known language (e.g., Python). That means that in
order to learn the practice of new languages I have to find problems
that are interesting enough to be solved (othewise I may not finish
them) *but* not too interesting.
 
M

Michele Simionato

Since I don't have a specific problem to solve, besides
Pythonchallenge (which I found very cryptic), and Project Euler (which
I found beyond my mathematics skills), is there a place to go for
increasingly difficult problems to solve? I have followed a number of
the recommended online tutorials that contain a logical progression of
problems and yet they all end at the point where a person has enough
knowledge of the syntax, but not really enough to do anything.

Just today I saw this recipe on the cookbook, "TV-Series Current
Episode Info":
http://code.activestate.com/recipes/572193/
As you see, there are plenty of useful things you can do with a
programming language ;)
Another trivial example: I am keeping an electronic journal as a
Python script which checks today's date, create a file with that date
(if it does not exist already) and open it with Emacs. That's all. I
can search the journal with grep. Since I write the journal in rst
format I can publish it on the Web in HTML or print it in PDF. It
takes 20 minutes to write a script like that, and it working better
for my needs than any commercial application could. The biggest
feature is the absence of features: less is more.

Michele Simionato
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,770
Messages
2,569,584
Members
45,075
Latest member
MakersCBDBloodSupport

Latest Threads

Top