Sign in to follow this  
Followers 0
Feru

Seeking Mentor

8 posts in this topic

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

Share this post


Link to post
Share on other sites

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 people like this

Share this post


Link to post
Share on other sites

^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.

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites
 

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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0

  • Recently Browsing   0 members

    No registered users viewing this page.