I think there is a discrepancy on the level of difficulty of challenge problems during the discussion.
When you are talking about the problems that review the language syntax and semantics, I can understand the point of looking at a solution after trying 10-15mins (even less). Let’s call these Level C problems. Here’s an example: The push method adds an element to the end of an array. Add three items 10, 45, and 87 to array
numbers. If one does not pass the test after 10 minutes, one may look at the solution. I can imagine an online practice session that poses a question. If the learner answers the question correctly in an allotted time, the session continues to the next question. And after the allotted time passes, it reveals the solution and poses another almost identical question. After 3 unsuccessful tries, the online practice session is locked and the learner is asked to review the materials before trying again.
Mastering Level C problems is necessary but not a sufficient condition for a software coder (developer, programmer, etc). There are Levels B, A, and S problems that go beyond the mastery of language syntax and semantics. [Note: This categorization of Level S, A, B, C here is my ad hoc invention for the sake of concrete discussion.]
Here’s an example of Level B problems. You are given an array of Student objects. Each student has a name, age, email, and an array of test scores.
- Display the average age of Students.
- Display the highest and lowest test scores of each student.
- Display the name of a student with the highest average test score.
- and so forth.
This is what we call problem solving (or algorithm) skills. It is one step above Level C in difficulty. FCC challenges include both Level C and Level B problems. For Level C problems, your answer must be 100% because otherwise, it won’t run. For Level B and above problems, we aim for 100% (most efficient, readable, etc.) but 50% solution would run and produce results. Looking at a solution too quickly is not what I recommend for Level B and above. It is difficult, in my opinion, to “internalize” a solution at this level if you peek a solution too quickly before giving a good solid try.
Finally, I think we are all in agreement that FCC is not (cannot be) a single source of learning. You need multiple sources (Udemy, W3CSchools, TutorialPoint, Stackflow, etc. etc.). I understand FCC is working on a new set of project-based curriculum with, I hope, an improved pedagogy.