DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports Events Over 2 million developers have joined DZone. Join Today! Thanks for visiting DZone today,
Edit Profile Manage Email Subscriptions Moderation Admin Console How to Post to DZone Article Submission Guidelines
View Profile
Sign Out
Refcards
Trend Reports
Events
Zones
Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones AWS Cloud
by AWS Developer Relations
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones
AWS Cloud
by AWS Developer Relations

Learning programming online – still possible

Denzel D. user avatar by
Denzel D.
·
Feb. 25, 11 · Interview
Like (0)
Save
Tweet
Share
4.10K Views

Join the DZone community and get the full member experience.

Join For Free

It became a somewhat standard question I've been asked for a while now – if someone wants to learn a programming language, a specific development practice/methodology or framework, where should he go first to look for help and would it be worth it to dedicate time to learn it online? A few years ago my answer would be “Books.” At the time (and by that I mean 8 to 10 years ago), decent software development resources were scarce online. No documentation (or, let’s say, no complete documentation), no way to really communicate with a multitude of software developers in a specific area (unless you already had a “circle of trust”) and practically no way to make sure that what you’re doing is the right thing - not the most exciting set of features for online resources.

Today, however, it is completely possible to rely solely on the Internet to learn a specific technology. The format (and volume) of the official documentation changed drastically – take MSDN Library, for example. Nowadays that’s the primary place for .NET tips and guides. To add to its value, Microsoft introduced community contributions – so, if the existing documentation is not good enough it is possible to easily contribute with required amendments (comments and code) and if it is a valid point, the guys that manage the MSDN content will eventually add that to the official documentation. This has happened to several articles already and I am happy to see this gaining momentum - there are plenty of fixes introduced. Besides MSDN, there are other resources – for example, PInvoke.net, that is completely community-driven and that shows how to use various WinAPI native call in managed environment. There are hundreds of entried already present there and it's constantly growing. If a developer finds a mistake, it can easily be edited since it is a wiki. Add to that the multitude of resources (from Microsoft) for videos and how-tos that will hold a beginners hand from start to finish.

Another example is the Android Developer portal. It pretty much covers the entire Android platform from the developer’s perspective. In some cases it might lack examples but with enough willingness to learn it is possible to get things done with it. And the same documentation format is spreading across many other companies and development oprganizations.

There is way more to add to the basic set - voluntary community contributions in various forms. Blog posts, articles, video tutorials, forums and podcasts – all these are great sources of knowledge. Of course, not all – community content is generally very fragmented and not every piece generated by an independent developer is informative enough to teach a concept in depth. Nonetheless, reading through what others have to say on the subject builds opinions. For example, you might see a better way how to do something. Or you completely missed a possibility described in a blog post. Yet another resource to learn from is the multitude of open source projects available for practically any language and platform. CodePlex and GitHub host millions lines of code you can learn from. Needless to say that some pieces can be re-used in your own projects.

Talking about forums - never hesitate to underestimate their potential. It is not only a great place to ask questions but also increase your own knowledge by going out of the comfort zone trying answering more complicated questions - I know some people who gained more experience they ever expected by simply trying to answer a questions they had no idea about. A bit of searching, finding a suitable solution, optimizing if needed and learning at the same time. Perfect recipe? To some extent.

I got this this conclusion on my own – when I realized that I am pretty much done using VB6, I decided to switch to C# - the problem was that I had no books whatsoever on it. I turned to online resources as my primary teacher – first I used the well-known copy/paste method and just saw how something worked, then a bunch of ambitious but failed projects because I had no experience whatsoever in doing something as complex as I wanted and I was soon knowledgeable enough to work with C# on a more than decent level. Same applies to Windows Phone 7 – when the SDK just came out, there were absolutely no books on it – experimentation and MSDN were the only ways it was possible to get something done. I should mention that the fact about the usability of online resources applies especially to bleeding-edge development products (languages, SDKs, IDEs, etc.) – rarely when a new product instantly comes with a book on its release date. And knowing where to look for information is going to help you a lot here.

As a conclusion, never cut out the possibility to learn solely from what’s available on the Internet. In fact, gain experience in learning something without books – it will help you a lot in the future, be it for your own work or for a job. Books are great, but in many cases you'll be able to save some serious money just by using resources already available to you.

Software development

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • DeveloperWeek 2023: The Enterprise Community Sharing Security Best Practices
  • A Gentle Introduction to Kubernetes
  • 10 Most Popular Frameworks for Building RESTful APIs
  • Running Databases on Kubernetes

Comments

Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends: