Less noise, more data. Get the biggest data report on software developer careers in South Africa.

Dev Report mobile

How I choose a source to enhance my Project-Based Learning

7 June 2023, by Cedric Maenetja

Project-Based Learning (PBL) is all about engaging in real-world projects, but despite the 'learn by doing' approach, you still need to find reliable sources of information that can help you build a project effectively with maximum learning potential. Here I will talk about how I go about choosing sources for my PBL projects and how they've helped me.

OfferZen_How-I-choose-a-source-to-enhance-my-Project-Based-Learning_inner-article

In my previous article, I covered how I used Project-Based Learning to acquire Android mobile development skills by carefully designing projects that aligned with my career goals. Before I started my first Android project, I set about creating a learning roadmap that identified my motivation and aligned my learning objectives, skills, and project focus to enhance learning effectiveness and career development. From this, I decided to utilise the Xposed Framework to create an 'App Store' to list my future applications and serve as a centralised hub for users to download and install any future apps I create.

Now that my project had been planned, I needed to complete one more step before starting: choosing the best source(s) to help me translate my learning roadmap into tangible skills.

Sources to choose from

It is important to choose a source to help guide you on your learning journey. Sources provide the required information, implementation instructions and practical examples about the framework, library, or language you are looking to learn.

There is a wide range of sources you can use when embarking on a project, and they tend to fall into the same three categories:

  • Primary sources: formal documentation, etc.
  • Secondary sources: tutorials, forums, etc.
  • A mentor: someone who can provide guidance and steer you in the right direction.

What's important to remember when looking for the best source for your project is that PBL is about working through problems and solving them yourself - you don't want to use someone else's solution. It's far better to find sources that act as guidelines or examples so that you can still get the most out of Project-Based Learning.

Reliable vs unreliable sources

There are a lot of reliable and unreliable sources out there, and choosing a reliable one with the right information will ease the learning process. This will ensure that you're learning with accurate information and doing things the right way.

The primary reliable source is the original developer's documentation. This kind of source is normally hosted on the same website as the library in question. Secondary reliable sources are sources that are not from the original developers but from others. As such, it can become a bit tricky to identify a secondary source as reliable or unreliable. Below is a table that I use to differentiate between the two.

Reliable Source Unreliable Source
Secured link (HTTPS). Unsecured link (HTTP).
Full code samples with tutorials and screenshots of outputs. Code samples all over the place and linking to different websites.
Covers a single language or library OR covers multiple languages in a structured way. Covers a range of disconnected topics in an article format.
Curriculum structure or outlining of learning objectives. An informal structure that places emphasis on subjective opinion rather than the objectives of what you'll be learning.
Forums with a huge developer presence. The author does not demonstrate expertise. For example, the tutorial is rushed, skips over steps, or has missing information.
Up-to-date information (check to see the date of publication and, if possible, the last time the article was updated) Out-of-date information (the date of publication is missing or the date is more than a few years old)

Online sources: Primary vs Secondary

Primary Source

I utilise different approaches for acquiring knowledge in my Android development projects. But when seeking information for my 'App Store', I turned to online documentation as my main source.

When most frameworks, libraries or languages are released, they come with documentation from the original developers(s) detailing in-depth the use of the features. I use this documentation as my primary source of information for my learning because it provides all the information about the framework (For example, the setup, getting started, how to do ABCD etc.), and it comes directly from the original developers.

Depending on the framework you're learning, this documentation can be as little as five pages or as big as 50 pages. The size of the documentation does not matter because, with Project-Based Learning, we extract only the information we need.

By looking at the skills I need to develop for Android mobile development, I can then determine which information I would need to look at in the Android Development and Xposed framework documentations. For example, under my objective of "Acquiring skills in Android mobile development", I needed to learn how to create, build, and publish a project. I could then begin searching and skimming through sections of the documentation that cover these three skills.

I usually skim through the documentation as opposed to reading in-depth. By skimming subheadings and pictures/diagrams, I am able to verify that the documentation meets the desired skills and outcomes I need to achieve. If the information does not satisfy the expected outcome (for example, it does not show me how to publish a project), then I search for secondary sources to help me.

Secondary Sources

As stated above, secondary sources are when information is provided by other developers who already have the know-how or tailored solutions to problems you are likely to encounter. I use secondary sources to find solutions to concepts that might otherwise be a bit complex or unclear in the original documentation. For example, when I needed to store data in a database, I had to turn to another resource when I found the original Android Development documentation confusing.

Below is a list of spaces where I usually first look for secondary online sources:

Here are some more reliable resources you could use to help you with your projects:

Using secondary online sources for learning has several advantages and disadvantages.

Pros of using secondary online sources for learning:

  1. Wide range of resources: a vast amount of learning resources exist online, including tutorials, documentation, videos, forums, and interactive platforms.
  2. Cost-effective: many online sources offer free or low-cost courses and resources, making them more accessible.
  3. Up-to-date information: reliable online sources are often updated regularly to reflect the latest developments and best practices.
  4. Community and support: online learning often fosters a sense of community through forums, discussion boards, and social media groups.

Cons of using secondary online sources for learning:

  1. Quality and credibility: Not all online sources are reliable, and sometimes it can be difficult to credibly validate the information and expertise of the source.
  2. Inhibiting problem-solving skills: In some cases, secondary sources may present complete solutions, encouraging the temptation to simply copy and paste without thoroughly understanding the problem-solving process.
  3. Lack of hands-on experience: some skills may be too technical or complex and might require mentorship to develop proficiency in it.

Remember to always cross-reference the information you find and ensure that the sources are reliable and up-to-date. I would also suggest being wary of using AI such as ChatGPT. This is because ChatGPT won't have the full context of your project, so it would still need to be cross-referenced. It is also more likely to give you the full solution rather than guidelines. It is better to use ChatGPT to refine your code once it's complete (if you see the need to).

Another useful secondary source is a mentor.

Mentors provide value in your learning journey

A mentor is someone who can guide you through your learning journey. This is someone who has extensive knowledge working with a technology you're trying to learn or has walked the path you've embarked on. Because of this, they can contribute greatly towards your learning. They already possess the skill set that you're trying to acquire and can steer you in the right direction.

Although it is not a must to have a mentor, having one will make your learning far easier. In some cases, mentors offer distinct advantages over online sources such as Stack Overflow by providing personalised guidance, real-time feedback, and a deeper level of expertise that enhances understanding, promotes skill development, and fosters a supportive one-on-one learning environment. Mentors can also help you stay motivated and suggest timeframes to improve your learning and help you set a target.

It is good to remember in these cases that having a mentor should be in addition to online primary and secondary resources: we should be leveraging both sources of knowledge to get the most out of them.

Finding a mentor

Not all mentors are good mentors, so finding the right mentor is a must if you choose to get one. Some of the things you can look for when searching for a mentor are:

  • At least three years of experience working with that technology - if you're looking for a mentor who will help you out with debugging or writing code.
  • At least five years of experience in the software development space - if you're looking for a mentor with a strong understanding of fundamentals in programming.
  • They should have pet projects - this is a tell-sign that they're passionate about what they do and have exposure to different methodologies and practices.
  • They should have strong communication skills. This will allow them to convey ideas and share information, helping you understand exactly what you need to do.
  • An interest in mentoring you - they choose to mentor you because they care about your personal goals/growth and not for self-inflation.

If you choose to mentor someone else in the future, you also have to consider the list above. My advice is "have a deep understanding of the subject matter you're guiding others in and avoid empty talk without substance".

There are a number of ways to find a good mentor. Here are just a few:

  • Reach out on professional networks, such as LinkedIn.
  • Join online forums like Quora, MentorCruise and talk with the most knowledgeable and approachable contributors.
  • Reach out to educational institutions related to your field of interest.
  • Attend local developer meetups or webinars.
  • Explore mentorship programs.
  • Ask for recommendations from peers or colleagues.

I didn't have a mentor during my Android development learning journey - however, I have been a mentor several times over the years. My mentoring was focused on career growth, and I saw my mentees benefit from this in various ways, such as increased self-confidence, personal growth, refined career path and expanded perspectives (diverse viewpoints and approaches to situations).

Conclusion

In conclusion, Project-Based Learning offers a valuable approach to acquiring real-world skills, but it is essential to find reliable sources of information to maximise learning potential.

It is important to choose sources before starting a project as they provide accessible and convenient access to a wide range of information, and resources, allowing you to acquire knowledge, be well prepared and expand your skills.

Once I have planned out my project and identified my sources, the next step is to get started with my project!


Cedric Maenetja is a mission-driven software engineer with a passion for building things that make a difference as well as being innovative with 46+ mobile applications and over 160 000 users worldwide. He has mentored and advised numerous junior developers domestically and abroad through OfferZen mentoring programme.

Read More

OfferZen_Want-to-Step-Up-Your-Writing-Game_Source-Banner

Recent posts

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.