Gaining experience in programming?

Asked bymatthew yapchaian

Tell us how to get experience in programming practical problems? I mean that in books, textbooks with tasks like “find the minimum and maximum elements in an array”, you can get some basic knowledge, but it is more useful to solve some more useful tasks.

In my case I try to study “Ruby” and “Rails”, I want some small tasks that are not very interesting and interesting. “I don’t want to invent bicycles in the form of blogs for myself, but fantasy is no longer enough. Maybe there is something like “free freelancing”?

In general, if you have any thoughts - write.

In other words, do something for free.


tara nichols
If there are no ideas, then you can try to participate in some open source project. Sortsy all in sight and study and benefit.
You can look redmine - calai alvarez
jamie l
Self-questioning is a great thing, you can create and maintain some useful small project for yourself. It can also be used for running all new technologies and solutions.
fran ois
Take orders for writing some simple utility script. And you’ll get real tasks, and you’ll get a small reward)
Where to find these orders? On freelance, if there is something under Ruby, only big Rails projects and good knowledge is required everywhere. - jetonsun1120
oDesk - moxi
n ntsi
Once you’ve been offered, I’ll expand the assumption: tasks on sports programming on sites that allow multiple languages ​​- and offhand.
There are also anthologies of programming type, in which you need to write code that performs some real task, in many languages. True, I did not check how Ruby was represented there.
Participate in opensource projects. You can make a little functionality (plugin), which is not, and polish to shine. This gives the main thing (which neither the institute nor the book has given):
You read and analyze someone else's code. Which at this stage of development can be taken as a model. You learn to navigate the code of a large project and use real developer tools (svn, ide, unit tests).
it is still useful to read the code of those libs (libraries) with which you will continue to work (for example, I read pear on php, I think there is such a pear in any language). Usually, while reading the code, you will often say “WTF?”, Google and find out.
p antle
And why do you reject the bike in the form of a blog?
I assure you that this is not as easy as it seems, especially when you consider input filters, selection by tags, versions of publications, etc.
Start by putting Refinery CMS
Then try writing your own plugin to it, for example displaying tags on a Google map.

I think it will be a great experience for a beginner.
m thomas
From my own experience I can give 2 tips:
1. To think what you need, what is not yet (or is it not even important) and do it yourself. This is interesting and useful. For example, write some small application \ script that will perform some routine work that you constantly perform or some kind of web services notifier. This is not so difficult and quite fascinating :)
2. Get a job, where projects are conducted in an interesting language for you, but not by a programmer, but by someone like an assistant or SEO person or someone else who will be close to the project code, and you will probably be given some simple ones at first tasks, something to fix somewhere, so as not to pull the programmers. As a result, you will gain experience, do more and more complex tasks, and then you look and increase :) naturally, with the device, you need to inform that you have a little knowledge.
max elman
Practically all well-known rubists recommend for reading experience the code of other people's projects. So you can learn various ninja techniques. For example, read the source code Bundler, HAML, Nokogiri. From myself I can recommend to read the source Sinatra
I will say how it happened with me. It all started with Delphi, which was studied by the method ctrl + space (autocomplete) :) I wrote two programs, I even managed to sell one. Then, having received the most basic knowledge (even without understanding the PLO), he wrote a thesis project together with a fellow student, he was a little more experienced than me, so he taught me some points. Then, at once, two projects appeared at the order of friends, then sat down at manuals and forums, looking for someone to implement their small task. So the experience began to appear - while solving real problems for which you are responsible. Then I got a probationary period in one web studio, and when I left them, I copied the CMS sources for myself and I understood the code for a couple of weeks - the writing style was very similar to mine and the training was fairly easy. Then again the forums and analysis of other people's sources. Well, later I got a job as a programmer, where I received the first serious project in a sole development. The employer turned out to be understanding and I wrote, studying. Now I’ve already started reading serious books about patterns and OOP :)
This is your combat task ñ I started doing it on python with the same goals, but so far I don’t have time and decided to postpone it for a longer time.

Web service for working with tests.

1. I create a test on the topic "Mathematics", fill it with questions (even 200 pieces). Questions may be of different types: choose 1 correct answer, choose several correct answers, true / false. This can be limited to, if there is a desire - there are more types of questions.

2. I go to the created test and form a pdf-button with N randomly selected questions from the 200 entered. And you need to create 2 pdf at once:
 - for a student to point out what he thinks is correct
 - for me, where the correct answers are already marked.

If it's interesting to take it - write in private, you can exchange e-mails there too.

If you take it and do not bring it to the end, you will not be offended (:
If you finish it and give it to me for combat use - I will be extremely grateful!
Well, I will add that all kinds of cms and stuff are irrelevant here.
The correctness of the application is relevant, it will be used in my idea by a running web server on a virtual machine (VBox) in some debiane.
Users - I + a couple of people who need to create such tests.
That is, it can be naked html without all sorts of bells and whistles and whistles. Only buttons, radio beats and tables are simple. - zelda
I wrote you this program. :)

On Django.

When programming, I used git. That is the version history you
you can see the git log command (of course, you first need to
install git) in the program directory.

Now I will describe the installation (for Ubuntu 10.10).

You download link, unpack it to yourself (for example, in
home directory).

You open the console, you do sudo su.

apt-get update
apt-get install python-django
apt-get install python-setuptools
apt-get install python-all-dev
easy_install pisa
easy_install reportlab
easy_install html5lib

Go to the directory with the program and do syncdb - it should be
will create a superuser who can use to log in
to admin panel if you need it for something (/ admin /).

cd testcreator
python syncdb

And you start the server. Generally, it is quite suitable for ordinary
use, but for use by several people and generally
production strongly recommend to pay attention in the direction of
gunicorn + nginx.

python runserver

Everything, the program should be available at the following address.

By the way, it uses unobtrusive javascript. That is, if
User javascript is off for some reason, and trendy
he doesn't have animated effects for dynamically changing pages.
display, the program still works for him - it just happens
additional link click. - mark arnold
Is available from Belarus? :: Good books on Oracle (DBA, PL / SQL) judging by your experience? :: Merchants for SaaS? :: Positional number systems :: Advise a book on JavaScript
Leave Repply forGaining experience in programming?
Useful Links