In my early attempts to learn software development, one of my sole resources was fCC. I like to think myself smart (as any autodidact would), but this impeded the pace at which I could learn because if/when I got stuck there I had very limited options:

  • ##Brute force:

    • ###PROS:

      • A great sense of accomplishment. Nothing is more euphoric than achieving a solution to something you with you were previously struggling. This gives you the confidence to be able to solve future problems.
    • ###CONS:

      • There’s a possibility that you take your solution at face value and not address any inherent misconceptions and/or assumptions that lead to your derivation of the solution. Furthermore, assuming you are at the very early stages, you might inadvertently reinforce a bad habit which you could carry on until either someone shines a new light on the problem or you gain new knowledge that sets you aright.

      • If you can’t hammer out a solution, then you might submit to feelings of discouragement on how you could even continue on this career path, especially if you are just on the outskirts of it.

  • Seach Online:

    You could be a great googler, have written many reports, papers, essays, etc that required an extensive amount of research, so you might think you are up to the task of repeating the same methods with a software related problem.

    • ###PROS:

      • At times it will be easy, partly because your question(s) might be related to common errors or problems many have faced, and the answers you seek could just be as easy as copying and pasting the error message in the searchbar.
      • Not only does your resource (blogpost, stackoverflow, etc) address your questions, but it also gives the reasoning for the problem, and points out different verfied solutions.
    • ###CONS:

      • In some cases, your knowledge base can be so limited in a topic that you can’t even formulate a question, or because you don’t have a proper understanding of the context or wording what you are attempting to express that you can’t even formulate a proper question. This inevitably could lure you into plunging deep into the google search results page, which will almost likely not yield the results you want.
      • More likely than not, there’s nothing new under the sun, but occasionally all the search results don’t pose a solution that is specific to your problem or you are the first to encounter this problem (which can be true if you are using a beta framework/library/feature, for example).
  • ##ASK:

    • ###PROS:

      • Informative answers coupled with explanations pertaining to your question.

      • Great source of code reviews and tips provided (especially at fCC forums).

    • ###CONS:

      • This is the same scenario with many forums/chats - toxic people. Measures can be made to lessen the appearance of such persons, but you will inevitably cross paths with them.

The third option, and the whole point of this post, is the best one, in my estimation. Being as stubborn and relentless in the idea of self-accomplishment, I avoided taking part in fCC’s forums and/or their gitter chatrooms for months. However, there arose a point where I couldn’t avoid it any longer. There was an algorithm that I was trying to solve and all my efforts were not enough. For days I would try to readjust my thinking and try another solution, but to no avail. It took me a week before I reluctantly asked someone to review my code on gitter. The person was very informative. In fact several people were able to highlight where my approach was wrong and direct me in the right direction without just posting the answer. This was a great experience for me and in fact was the sole reason I started to become more active in the fcc community (and communities is general), which also led me to start helping others as well. The community fosters a sense of group learning and it does so easily because there’s a shared context. In a community you feel a sense of inclusion - which led to me even contributing to fcc site by creating pull requests to fix some issues, addressing open issues that campers have on the github page, and testing the beta site.

It’s been a while since I’ve been active in the fcc community, but what I’ve gained is an appreciation for learning within the confines of a community instead of alone. I’ve been a frequent anonymous stackoverflow user, I read posts, search questions, etc, but I have not created an account, asked and/or answered any questions. That changes today - at least the account creation portion - as I’ve signed up and want to be an active part of this community and many others. In the coming months and years I want to be able to increase my expertise in several niche topics and would love to have the reputation to report that as well.