Page 1 of 2 12 Last
  • Jump to page:
    #1
  1. Contributing User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Jan 2005
    Posts
    174
    Rep Power
    11

    Ideas to direct my self-training?


    hey

    i'm trying to become more useful/employable using Python (and other languages like PHP/C++). I've built scripts here and there, simple blog software, and a membership app using PythonCard, but that's about it.

    I was wondering, based on your experience, what kinds of projects have made all the difference for you and your skills training, specifically in Python? This will help me direct my endless self-study a bit

    I'd like to make some kind of project ladder from beg-int-adv based on your responses. Not many are needed, just a direction.

    I would imagine that others looking for timely cogent ideas in their self-training would also enjoy your response.

    best regards
    sf2k
    Last edited by sf2k; January 25th, 2006 at 04:29 AM.
  2. #2
  3. Contributing User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Oct 2003
    Location
    Lisbon, Portugal
    Posts
    154
    Rep Power
    13
    Good post, I'd love to hear some feedback, although I have a few ideas of my own about the subject, derived from background experience (not much).


    One of the things that will get you employed, I believe, is a portfolio. For that, you need to do more than just a few scripts (though a count of the number of small scripts can add to that: "Over 200 small scripts written for different projects").

    I'd definitely look into GUI development, which would allow you to built applications that other people other than computer geeks would be able to use quite easilly.

    Aside from that, if you've got ideas of your own, work on them. If you don't, have a look at the projects being developed in Python and offer your help. Sourceforge.net is a good place to start looking.

    My experience with Python right now is quite limited, but I have to do this "big" server thing. If it ever gets finished, it'll work as a good project on my portfolio: it means I've studied socket programming (thinking about buying this book.), might know a little about threads, and if the thing does half of what it's supposed to do, that I can code at least half-decently and can get involved in at least medium-sized projects.

    If you're into game programming, it's good, but only for those that realize that that kind of programming requires the best optimization you can get. You can also not be taken seriously like I was when I was doing my end-of-course project, which WAS a game, just because it WAS a game.


    So... my advice is, get involved in some projects, or if you've got the time, start your own. Finish them. Get your name on them.


    I'm a bit of a newbie around the programming world, so don't take the post too seriously.

    --- edit ---
    And I just realized I wasn't really helpful. I'd go check on active Python projects, starting out at sourceforge.net, and if you're interested enough, stick with them and make a name for yourself.
    "Get it hot! Hit it harder!!!"
    --- The tutor warcry

    ActivePython
    Mark Pilgrim's Dive into Python E-book, thank this guy for his contribution to the Python community!
  4. #3
  5. Contributing User
    Devshed Novice (500 - 999 posts)

    Join Date
    Feb 2005
    Posts
    620
    Rep Power
    65

    Smile


    With the Government spying on all of us, I think "data mining" is the way to go if you want to find a gravy job with them. This in turn leads to "data security" for those who like things from being abused. How about fighting those pesky "spyware" thingies? Or, if you are evil, you can make them.
  6. #4
  7. Contributing User
    Devshed Intermediate (1500 - 1999 posts)

    Join Date
    Dec 2004
    Location
    Meriden, Connecticut
    Posts
    1,797
    Rep Power
    155
    The government spying on us shouldn't affect this. They won't be able to see what you're doing on your personal computer.
  8. #5
  9. No Profile Picture
    Contributing User
    Devshed Novice (500 - 999 posts)

    Join Date
    Nov 2004
    Location
    There where the rabbits jump
    Posts
    556
    Rep Power
    12
    do you know that they do know lol they have viruses aswell..
    Those people who think they know everything are a great annoyance to those of us who do.
  10. #6
  11. Contributing User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Oct 2003
    Location
    Lisbon, Portugal
    Posts
    154
    Rep Power
    13
    It's all beside the point of this thread though, isn't it?

    I'm genuinely interested in what everyone has done to make themselves successful in this area.
    "Get it hot! Hit it harder!!!"
    --- The tutor warcry

    ActivePython
    Mark Pilgrim's Dive into Python E-book, thank this guy for his contribution to the Python community!
  12. #7
  13. No Profile Picture
    Contributing User
    Devshed Novice (500 - 999 posts)

    Join Date
    Nov 2004
    Location
    There where the rabbits jump
    Posts
    556
    Rep Power
    12
    lol ya sort of it is off topic
    well i understand it as in, just do as much as possible if oyu have an idea then go for it and work for it, try to imporve it...

    For example I am making a NetChat it is going to be really cool and one really good huge project that works well is worth 100s of little scripts...
    Those people who think they know everything are a great annoyance to those of us who do.
  14. #8
  15. Contributing User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Jan 2005
    Posts
    174
    Rep Power
    11

    It's the journey that builds the portfolio.


    thanks for the replies

    yeah, i'll keep plugging away at my scripts and mini projects that are the day to day python experience. You're correct in identifiying this as a portfolio maker. Sounds better than what I described as just a half-hazard code-wanderer.

    so far we got:

    GUI programming --> PythonCard -- wxPython -- Tk (anybody use these?) I'm liking the sound of this chain.

    i'll venture sql -- webbots -- data mining -- data security, sounds like a plan there...

    sockets -- threads -- networking -- chat -- servers -- frameworks
    I stuck frameworks there as it seems if you wanted to make you're own framework, you'd need the below areas.

    how about unit testing?

    I'd imagine that I'll need to look in to C hooks for Python either from Python to C or from C to Python to make use of the gaming in pygame. I know I don't have to, but this is the point of this thread, making the links from one experience to the next to complete our gaping holes in our skills. Ok, my skills

    Some of this may be obvious and others not. It's the journey that builds the portfolio, but I don't want to have to study everything. So if I did the first two of each chain I'll call that a beginner level. Make sense?

    Last edited by sf2k; January 26th, 2006 at 03:06 AM.
  16. #9
  17. Contributing User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Jan 2005
    Posts
    174
    Rep Power
    11
    game programming is a good example here of building up a portfolio.

    you can just jump right into 3D first person shooter game programming, in spite of the learning curve and hope for the best. But it's far better to start small and build up all your code libraries, ie: tetris, blockout, asteroids, 2D scroller, streetfighter, THEN go for the 3D This is a natural progression of experience and knowledge at each stage. Frankly, who would you rather work with?

    we all do our scripts and go off on wild tangents, but at the same time I want to make sure that I keep an eye out for the portfolio width too, as it relates to my Python skills.

    so if you can convert my simple game list above into Python levels of skill that would be sweet. I think we've started off well.

    i hope that's clearer.

    btw;
    This is inspired by the javablackbelt website, but I'm no longer a Java fan. I probably have a white belt in Python by now but I'm looking for my yellow

    cheers
    sf2k
    Last edited by sf2k; January 26th, 2006 at 04:06 AM.
  18. #10
  19. Contributing User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Oct 2003
    Location
    Lisbon, Portugal
    Posts
    154
    Rep Power
    13
    Eheheheh!

    Wanting to be a hobbyist gamedev too, I've read a bit about that. They ALL tell you to start out low. Tetris, then breakouts, then maybe a platformer, just like you said!

    Personally, I'd try them out in Python, and then try the C/C++ version when you learn it decently. That'll be my approach.

    Also, knowing C and how to expand Python with it seem fabulous! I'm going to learn C++ at Uni this semestre, and I'll definitely be looking into that too!

    What seems to be a very interesting project is a chat program of the likes of MSN and ICQ, AIM, etc etc. Why? Well, it's got a GUI, it probably makes use of threads (thread pools too) for input and output (from the user and from sockets), and can make use of UDP and TCP sockets. I'm only a supreme super newbie in these things, but I'll definitely try that out once I'm not such a newbie, making use of ALL the different methods I can. Just to get experience, and to get that onto my portfolio.

    Heck, you could give that program over e-mail to your possible employer and ask them to talk to you over that program, WHICH WORKS (hopefully! *grin*).

    So in that 'simple' program, heck, you've got plenty!


    What exactly is data-mining and data security, and web-bots? All this, even programming, is something that, coming from a multimedia school ("WE DON'T LIKE PROGRAMMING, WE'RE BLOODY ARTISTS or maybe programming is just too damn work for us") we never really got into specifics with.
    "Get it hot! Hit it harder!!!"
    --- The tutor warcry

    ActivePython
    Mark Pilgrim's Dive into Python E-book, thank this guy for his contribution to the Python community!
  20. #11
  21. Contributing User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Jan 2005
    Posts
    174
    Rep Power
    11
    What exactly is data-mining and data security, and web-bots?
    say i wanted the daily dilbert/userfriendly.org comic strip to be displayed or emailed to me. A webbot is a script that reads a webpage using the urllib2 module for example, and then you take only what you want, so just the image or just some text that I'm looking for .

    data mining seems to conjure up a mix of database information that has not been mixed before. Finding new relationships between clients so that your sales and marketing teams *do something*. Or taking an internal application and making it a business to business tool so that your technical department can go do something else.

    data security seems related to the mining, again database related and I think of backups mostly but I'm sure incorporates much more on the lines of server / spam / javascript hacks but could be as simple as a form that does not post executable data into the server.

    all these items deal with regular expressions, massaging data into your whims at the moment, and making reports or creating a new display of your results. So this is why I see them as a chain of events.
  22. #12
  23. Contributing User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Jan 2005
    Posts
    174
    Rep Power
    11
    I'm going to learn C++ at Uni this semestre, and I'll definitely be looking into that too!
    definitely read Accelerated C++ by Andrew Koeing and Barbara E. Moo

    it's small, powerful and expensive, but well worth it. Just read the zero and first chapter before you buy it if you're not convinced. Then you can save your brain for more python

    Comments on this post

    • CountVikernes agrees : Cheers! I'll be looking into that then!
  24. #13
  25. No Profile Picture
    Contributing User
    Devshed Intermediate (1500 - 1999 posts)

    Join Date
    Feb 2004
    Location
    London, England
    Posts
    1,585
    Rep Power
    1373
    Here are some of the things I look for when interviewing for Python jobs:

    * the ability to learn and adapt easily

    * the ability to work well as part of a team

    * some knowledge of other programming languages, so that you know when is a good time to use Python and when it is better to switch to something else

    * 'test infected' - uses automated unit tests as an integral part of their development process

    * good problem solving ability

    * a good understanding of the language. this is actually less important than the others, since Python is an easy language to learn. However an awareness of the difference between static and dynamic languages is important, since writing Python through a Java mindset will result in un-pythonic code.

    Working on open source projects is a good way of getting useful experience and shows a love of programming rather than an 'in it for the money' mentality. This can mean a lot if you do not have much work experience.

    Dave

    Comments on this post

    • sf2k agrees : thanks :)
    • CountVikernes agrees : Indeed! It's good to know an opinion "from the other side"!
    • netytan agrees : That last paragraph deserves an agreement from everyone IMO :)
  26. #14
  27. Hello World :)
    Devshed Frequenter (2500 - 2999 posts)

    Join Date
    Mar 2003
    Location
    Hull, UK
    Posts
    2,537
    Rep Power
    69
    One thing that hasn't been mentioned yet: keep a notebook. It may sound silly but since I started doing it i've found it to be very useful. Whenever you have an idea or whenever you try something, write down. If you tried something and it didn't work then definitely write it down because it'll help you not to make the same mistake twice .

    If you're learning a new API like the one you guys want to play with for extending Python then note down all the useful stuff.

    I just did this with petite Scheme for a GUI project I'm working on and I managed to learn most of a small but very poorly documented API in a couple of days.


    Learning a programming language doesn't teach you how to program, and it doesn't teach you know to program well!!! It's the concepts you learn while programming in a language that are of value so reading isn't enough.

    I once read two very large books on C#, now you might expect that I can write programs in C#. I can't thats the first and last time I'll try and learn a language without using it .

    Different languages teach you different things*, and most of this knowledge will carry over into any other work you do so don't even contemplate sticking with just 1 or 2 or 3 or 50!

    You'll be much better off if you never find a language that you think "Yes, I'll use this language for the rest of my life". Once you get to that point you're doomed because you've locked into one way of thinking and you're not prepared to change.

    Added to that after a while it becomes impossible to learn anything truly new .

    With that in mind I would suggest also that you learn two languages at once if you have a job, then learn one for work and one for play. The one that you use in your free time will more than likely be the better of the two language.


    Idea's are important if you really want to stand out in anything. If you run with the heard and constantly re-implement the same 5 ideas over and over then you're drastically cutting down on your chances of getting an interesting job.

    Script or large application what matters is that it's useful. You may have the largest program on the planet but if it's not useful you might as well run `rm -f` on it.

    Note: thats not to say that you shouldn't write mess around programs for learning.

    Get involved with other peoples projects, have fun, learn but at the end of the day you need you're own ideas and the drive to carry them though IMO .


    Finally, and no offense to anyone doing this but if I see yet another chat program I may just scream .

    I've been on the forums for a few years now and I've seen the same themes come up again and again there have been are at least 4 or 5 people writing chat programs here and we hardly represent the whole community heheh.

    Take care,

    Mark.

    Comments on this post

    • bhagwatn agrees : I like the ideas and suggestions.
    • Yegg` agrees : I write down information I may need in an editor.
    programming language development: www.netytan.com Hula

  28. #15
  29. Contributing User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Oct 2003
    Location
    Lisbon, Portugal
    Posts
    154
    Rep Power
    13
    Hmmm. Damn. I'm one of the chat program dudes. The thing with chat programs is that it requires you to know a fair bit about sockets... maybe it's just lack of imagination, but I'll definitely be doing one, or maybe a simple server/client framework based on sockets which I'll be using for communication for certain types of games/apps.

    I guess the later is more interesting, huh? Especially if there's a way to make the whole thing into a library that can be used in other languages.


    Still, chat programs are something everyone knows about, and has a general idea of how it can work. I haven't reached a confidence level with sockets to make something more serious than a try-out chat server. If I do something, especially a big project, I'll want it to have a decent, robust framework.

    Comments on this post

    • netytan agrees
    "Get it hot! Hit it harder!!!"
    --- The tutor warcry

    ActivePython
    Mark Pilgrim's Dive into Python E-book, thank this guy for his contribution to the Python community!
Page 1 of 2 12 Last
  • Jump to page:

IMN logo majestic logo threadwatch logo seochat tools logo