Jump to content



Photo

Seeking Mentor


  • Please log in to reply
7 replies to this topic

#1 Feru

Feru

    Neowinian

  • Joined: 06-November 13

Posted 06 November 2013 - 06:09

I just recently got into using some of the Online tools for learning some code and would really appreciate some hands on help in my learning, If anyone is at all interested in helping let me know, i have some wonderful ideas i would like to implement soon, and some really cool ideas for, online classroom settings for large groups to learn, But i really need to learn more before that so please help out thank you




#2 +Karl L.

Karl L.

    xorangekiller

  • Tech Issues Solved: 15
  • Joined: 24-January 09
  • Location: Virginia, USA
  • OS: Debian Testing

Posted 07 November 2013 - 13:24

Not to dampen your enthusiasm, but most programmers and aspiring programmers have a host of "great ideas" for programs they would like to write. I have a decent sized list of new programs I want to write and features I want to add to ones I have already written. I can dream up reasonably detailed plans for complex programs, but implementing them takes much more time and effort. The reason I have a "to do" list is because I don't have enough free time to implement them all. It is definitely a good sign that you have ideas for awesome programs. The best way to understand a programming language is to choose a project, and start implementing it in your language of choice. Start small and work your way up. You will become capable of implementing ever more complex programs as you mature as a programmer. Similarly, new languages will become much easier to learn after you have a solid grasp on the first.

 

Incidentally, one of the best ways to learn good practice, gain practical experience, and receive mentoring is to join an established open-source project. Pick a project you are interested in, and ask how you can help. Project members are often willing to volunteer some of their time to help you understand how their project works, and help you work through issues you encounter as a programmer. Try to work through problems on your own first, and ask for help only when necessary. Not only will you learn more when you figure out something problematic on your own, but you will likely retain that knowledge longer. Working with an established code base also has the benefit of teaching you neat tricks you might not have thought of on your own.



#3 Praetor

Praetor

    ASCii / ANSi Designer

  • Tech Issues Solved: 5
  • Joined: 05-June 02
  • Location: Lisbon
  • OS: Windows Eight dot One dot One 1!one

Posted 07 November 2013 - 13:49

^couldn't say better, start small and mature yourself as a programmer; if you believe that you have a winning idea for a program then start implementing it when you have the tools and enough knowledge for it to work.



#4 Raphaël

Raphaël

    You can't take the code from me

  • Joined: 15-January 04
  • Location: Belgium
  • OS: Windows 8.1
  • Phone: Nokia Lumia 630

Posted 08 November 2013 - 21:13

Whow, well said!

 

Not to dampen your enthusiasm, but most programmers and aspiring programmers have a host of "great ideas" for programs they would like to write. I have a decent sized list of new programs I want to write and features I want to add to ones I have already written. I can dream up reasonably detailed plans for complex programs, but implementing them takes much more time and effort. The reason I have a "to do" list is because I don't have enough free time to implement them all. It is definitely a good sign that you have ideas for awesome programs. The best way to understand a programming language is to choose a project, and start implementing it in your language of choice. Start small and work your way up. You will become capable of implementing ever more complex programs as you mature as a programmer. Similarly, new languages will become much easier to learn after you have a solid grasp on the first.

 

Incidentally, one of the best ways to learn good practice, gain practical experience, and receive mentoring is to join an established open-source project. Pick a project you are interested in, and ask how you can help. Project members are often willing to volunteer some of their time to help you understand how their project works, and help you work through issues you encounter as a programmer. Try to work through problems on your own first, and ask for help only when necessary. Not only will you learn more when you figure out something problematic on your own, but you will likely retain that knowledge longer. Working with an established code base also has the benefit of teaching you neat tricks you might not have thought of on your own.



#5 +snaphat (Myles Landwehr)

snaphat (Myles Landwehr)

    Electrical & Computer Engineer

  • Tech Issues Solved: 29
  • Joined: 23-August 05
  • OS: Win/Lin/Bsd/Osx
  • Phone: dumb phone

Posted 10 November 2013 - 03:20

While joining an opensource project can be good for learning about programming, it isn't exactly the greatest environment for learning best practices or for understanding underlying details of what a program is really doing in terms of execution. The latter is really integral to being a good programmer (though much less so with C#/Java since those give you much less rope to hang yourself with and are fairly good at optimizing badly written code). But, let's be honest, a large number of opensource projects don't really have stellar developers or even good project management (not to mention, politics and oss go hand in hand much of the time). I learned far more by studying computer architecture in college than I ever did through developing for an opensource project.



#6 +Karl L.

Karl L.

    xorangekiller

  • Tech Issues Solved: 15
  • Joined: 24-January 09
  • Location: Virginia, USA
  • OS: Debian Testing

Posted 10 November 2013 - 14:03

While joining an opensource project can be good for learning about programming, it isn't exactly the greatest environment for learning best practices or for understanding underlying details of what a program is really doing in terms of execution. The latter is really integral to being a good programmer (though much less so with C#/Java since those give you much less rope to hang yourself with and are fairly good at optimizing badly written code). But, let's be honest, a large number of opensource projects don't really have stellar developers or even good project management (not to mention, politics and oss go hand in hand much of the time). I learned far more by studying computer architecture in college than I ever did through developing for an opensource project.

 

Respectfully, I have to disagree with you in part. While it is true that writing some of your own programs from the ground up is critical to your development as a programmer - hence my admonition that the OP should start implementing a project of his choice in the language he is studying - that alone can never teach you good practice. I also agree there are a large number of poorly implemented and poorly run open-source projects in the wild. I have yet to see a well-written, open-source C# application, for example, and most Java code I have seen, both commercial and open-source, is exceedingly poorly written. However for all the poor code on the Internet, there are a number of open-source projects with good communities, knowledgeable developers, and a reasonably well-written code base. I am not advocating joining a dysfunctional community with a dying project. On the contrary, I advocate participating in a technically sound project with clear design goals and active developers. Although such projects are relatively few, the sheer size of a project is usually a good indication of its support. For example, Wine is a project that easily meets the criteria I laid out. Therefore while I agree that a firm grasp on the basics is critically important for every developer, and that understanding cannot be developed through anything other than hard work and study, I respectfully disagree that open-source projects are a complete waste of time for a novice programmer.



#7 +snaphat (Myles Landwehr)

snaphat (Myles Landwehr)

    Electrical & Computer Engineer

  • Tech Issues Solved: 29
  • Joined: 23-August 05
  • OS: Win/Lin/Bsd/Osx
  • Phone: dumb phone

Posted 10 November 2013 - 16:59

 

Respectfully, I have to disagree with you in part. While it is true that writing some of your own programs from the ground up is critical to your development as a programmer - hence my admonition that the OP should start implementing a project of his choice in the language he is studying - that alone can never teach you good practice. 

 

Don't misunderstand me here, developing your own projects won't teach best practices. But, I was making the point that oos projects don't tend do that either.

 

I am not advocating joining a dysfunctional community with a dying project. On the contrary, I advocate participating in a technically sound project with clear design goals and active developers. Although such projects are relatively few, the sheer size of a project is usually a good indication of its support. For example, Wine is a project that easily meets the criteria I laid out. Therefore while I agree that a firm grasp on the basics is critically important for every developer, and that understanding cannot be developed through anything other than hard work and study, I respectfully disagree that open-source projects are a complete waste of time for a novice programmer.

 

This it is an important distinction. A novice programmer is far more likely to end up with a bad oss project than a good one just because of the sheer numbers of poor projects. I wouldn't say joining an oss project is a complete waste of time either, it just isn't ideal much of the time. It is much better to get formal training in my opinion.



#8 +Karl L.

Karl L.

    xorangekiller

  • Tech Issues Solved: 15
  • Joined: 24-January 09
  • Location: Virginia, USA
  • OS: Debian Testing

Posted 11 November 2013 - 05:07

This it is an important distinction. A novice programmer is far more likely to end up with a bad oss project than a good one just because of the sheer numbers of poor projects. I wouldn't say joining an oss project is a complete waste of time either, it just isn't ideal much of the time. It is much better to get formal training in my opinion.

 

In that case, I agree with you. Although I am involved in open-source projects and have continued to teach myself new programming languages and technologies, I have undergraduate degrees in computer science and computer engineering. I definitely agree that the sort of formal training I have received is very helpful. Working with more experienced developers in person, as will often happen in the workplace, is also extremely helpful. I recommend such training without reservation for serious aspiring developers.