Need some suggestions regarding my programming career
-
I need some suggestions regarding my programming career I am a fresh graduate engineer and I am very interested in becoming a good coder. I have worked on a couple of projects as a freelancer on Python/Django. I want to learn more development techniques and algorithms and want to become good at it. What can I do? I have always wanted to contribute to the open source community as well. How do I choose? where do I start? Is there anything that's emerging in the programming field? I'd love to learn new things as well
-
Answer:
For learning more languages, I suggest learning C (get the book "The C Programming Language", co-authored by the creator of C himself) and/or assembly to get a better understanding of what goes on "behind the scenes". Then learn C++ (this is a HUGE language, don't expect to learn this within a short span of time), it's used A LOT in industry. It has OOP concepts in it, but a better language to learn OOP in is Java or C# (in my opinion at least). After those, learn some functional programming, which seems to be gaining popularity recently. Part of industry seems to like Scala (Twitter converted their backend from Ruby on Rails to Scala not too long ago) which runs in the JVM, and is sort of a hybrid between OOP and functional programming - it also has native concurrency support, which is something else you should learn, especially with cloud computing and multi-core CPUs being all the rage. For more functional programming, Clojure (Lisp dialect) and Haskell are popular choices as well. Functional programming looks scary at first (at least it did to me), but it's very powerful, esp. for data processing. For learning more about data structures/algorithms, get "Introduction to Algorithms" by CLRS. There's also an archive of video lectures from the MIT Algorithms class that uses that same book here: http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-introduction-to-algorithms-sma-5503-fall-2005/video-lectures/ For the open-source community, find a project via Google, or GitHub, learn whatever language they use, play with the existing release they have, and see if there's anything you can do to improve it. The best way to become a coder is to code - reading books/listening to talks will only get you so far, hands-on coding is a far better teacher. Do the exercises in the books - some may look simple, but often times you'll run into problems you had not previously considered and you learn from those as well.
user1077344 at Programmers Visit the source
Other answers
A few idea: Code kata are a good thing to practice all the time. Learn new languages in new paradigms: functional, OO, etc. Learn from mentors -- finding those is hard. Learn patterns and anti-patterns. Contribute to software and get your code reviewed -- grow a thick skin, people are criticism your code not yourself. Read (good) books about programming. Look at questions on SE/SO and try to answer them.
Sardathrion
Related Q & A:
- What kind of education do you need to pursue your career as a member of an orchestra?Best solution by Yahoo! Answers
- What do I need to get a good job in programming?Best solution by Quora
- Career in programming without a computer science degree?Best solution by techrepublic.com
- How can I get a career in programming?Best solution by cplus.about.com
- I need some birthday suggestions.Best solution by yelp.com
Just Added Q & A:
- How many active mobile subscribers are there in China?Best solution by Quora
- How to find the right vacation?Best solution by bookit.com
- How To Make Your Own Primer?Best solution by thekrazycouponlady.com
- How do you get the domain & range?Best solution by ChaCha
- How do you open pop up blockers?Best solution by Yahoo! Answers
For every problem there is a solution! Proved by Solucija.
-
Got an issue and looking for advice?
-
Ask Solucija to search every corner of the Web for help.
-
Get workable solutions and helpful tips in a moment.
Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.