<blockquote>
<p>Please note: I am a serious student who wants to improve himself into a quotes strong and all rounded problem solver and developer</p>
</blockquote>
<p>Firstly, I don't think &quot;problem solving&quot; is a generic cognitive skill.</p>
<p>Rather, problem-solving is partly a capability that arises from having a deep understanding of a particular subject and a variety of experience in that same area.</p>
<p>In other words, you get problem-solving for free by knowing a lot about something. It's very rare that someone is acknowledged to know a lot but be unable to answer ad-hoc questions or solve problems in the same area, and it's rare for someone to solve problems about something they know nothing about.</p>
<p>Secondly, there are really many different kinds of developer, and no one person could possibly cover all things in the world that fall under the heading of &quot;development&quot;.</p>
<p>And since PCs became widely available, I'm not aware of any capable developer who started in adulthood. Much as you very rarely get any kind of professionally competent musician who first took an interest in music only as an adult.</p>
<p>You'd be going back a number of decades now when adults were being drawn into computer programming for the first time in their lives, because there were many people with latent capabilities who hadn't encountered expensive computer hardware before they were adults, and the dire shortage of practitioners meant that employers offered ample opportunities for training.</p>
<p>Thirdly, computer science curriculums are not good at reproducing industrial software developers generally.</p>
<p>Good developers may do well studying a computer science curriculum, but the function of such a course is mainly a form of <em>identification and selection</em> of those with pre-existing capability or propensity, it does not function particularly well to actually educate an arbitrary student into a competent developer.</p>
<p>Indeed, I've known many working developers with no computer science background whatsoever - and although they weren't the best developers, they were clearly able to function substantially as developers.</p>
<p>So attempting to access the materials of a computer science course, would potentially do little to alter your situation.</p>
<p>A lot of would-be developers have also become obsessed with the idea that coding challenges are the secret to increasing their skills as developers.</p>
<p>There's very little correspondence between completing pre-set coding challenges and professional software development, and although coding challenges might be appropriate for very young children, they would be no more appropriate for an adult student of software development than completing simple arithmetic would be appropriate for an adult student of mathematics.</p>

CC BY-SA 4.0
2024-05-07T18:34:25.493Z
2024-05-07T18:34:25.493Z
Steve
<p>IITs,IISC, Oxford, Cambridge, MIT etc are top reputed intitutes throughout the world . Suppose some one wants to become as good a the alumini of these institutions by reading books and solving very hard problems. Can anyone suggest books and resources from where we can learn and solve complex problems to develop the skills the good institutes teach us . Can we find the problems these institutes provide in websites like hackerrank, codechef etc or are there other websites from where we can learn difficult problems and their solutions . Thank you.</p>
<blockquote>
<p>Please note: I am a serious student who wants to improve himself into a quotes strong and all rounded problem solver and developer, but due to many reasons I am unable to join any of these reputed institutes. So a sincere help, in getting a proper direction will be of great help for me. Thank you.</p>
</blockquote>

CC BY-SA 4.0
2024-05-07T16:26:42.717Z
Many of these institutions offer their course material for free, https://ocw.mit.edu/ being the most prominent example. HackerRank and Codechef are algorithmic problem sites (online judges), a small fraction of what you'd learn in a CS course at a prestigious institution. Those are good for fun/practice, competitive coding, and preparing for job interviews, which are largely tangent concerns to the CS curriculum.
ggorlen
CC BY-SA 4.0
2024-05-07T18:33:53.397Z
@ggorlen can you please suggest some ways which can help me improve my problem solving ability related to computer science. Either through books or through websites . Thank you.
Sillyasker
CC BY-SA 4.0
2024-05-07T18:36:12.227Z
I'd love to help, but that's a pretty broad request. I suggest providing more context for where you're at so far, what goals you have, which topics interest you specifically, etc.
ggorlen
CC BY-SA 4.0
2024-05-08T02:31:15.307Z
@ggorlen For now I will be learning coding problems from the websites like hacker rank and codechef, but how can I develop problem solving skills in operating systems and computational complexity ? Should I only refer to books or are there any good websites for difficult problems.
Sillyasker
CC BY-SA 4.0
2024-05-08T02:32:14.670Z
Also @ggorlen can you provide some magazines or websites where I can learn about the detailed application and theory of technologies that are used in industries etc. thank you.
Sillyasker
<self-learning><resource-request><resource-information>
How to develop skills in computer science that separate normal students from students of reputed institutes?
# How to develop skills in computer science that separate normal students from students of reputed institutes?

(Asked by: username_0 on 2024-05-07)

IITs,IISC, Oxford, Cambridge, MIT etc are top reputed intitutes throughout the world . Suppose some one wants to become as good a the alumini of these institutions by reading books and solving very hard problems. Can anyone suggest books and resources from where we can learn and solve complex problems to develop the skills the good institutes teach us . Can we find the problems these institutes provide in websites like hackerrank, codechef etc or are there other websites from where we can learn difficult problems and their solutions . Thank you.

> Please note: I am a serious student who wants to improve himself into a quotes strong and all rounded problem solver and developer, but due to many reasons I am unable to join any of these reputed institutes. So a sincere help, in getting a proper direction will be of great help for me. Thank you.

**Tags:** self-learning, resource-request, resource-information

> **Comments:**
> **username_1**: Many of these institutions offer their course material for free, https://ocw.mit.edu/ being the most prominent example. HackerRank and Codechef are algorithmic problem sites (online judges), a small fraction of what you'd learn in a CS course at a prestigious institution. Those are good for fun/practice, competitive coding, and preparing for job interviews, which are largely tangent concerns to the CS curriculum.  
> **username_0**: @username_1 can you please suggest some ways which can help me improve my problem solving ability related to computer science. Either through books or through websites . Thank you.  
> **username_1**: I'd love to help, but that's a pretty broad request. I suggest providing more context for where you're at so far, what goals you have, which topics interest you specifically, etc.  
> **username_0**: @username_1 For now I will be learning coding problems from the websites like hacker rank and codechef, but how can I develop problem solving skills in operating systems and computational complexity ? Should I only refer to books or are there any good websites for difficult problems.  
> **username_0**: Also @username_1 can you provide some magazines or websites where I can learn about the detailed application and theory of technologies that are used in industries etc. thank you.  

---

## 1 answers

### Answer by username_2 on 2024-05-07. Score: 7 | Accepted answer

> Please note: I am a serious student who wants to improve himself into a quotes strong and all rounded problem solver and developer

Firstly, I don't think "problem solving" is a generic cognitive skill.

Rather, problem-solving is partly a capability that arises from having a deep understanding of a particular subject and a variety of experience in that same area.

In other words, you get problem-solving for free by knowing a lot about something. It's very rare that someone is acknowledged to know a lot but be unable to answer ad-hoc questions or solve problems in the same area, and it's rare for someone to solve problems about something they know nothing about.

Secondly, there are really many different kinds of developer, and no one person could possibly cover all things in the world that fall under the heading of "development".

And since PCs became widely available, I'm not aware of any capable developer who started in adulthood. Much as you very rarely get any kind of professionally competent musician who first took an interest in music only as an adult.

You'd be going back a number of decades now when adults were being drawn into computer programming for the first time in their lives, because there were many people with latent capabilities who hadn't encountered expensive computer hardware before they were adults, and the dire shortage of practitioners meant that employers offered ample opportunities for training.

Thirdly, computer science curriculums are not good at reproducing industrial software developers generally.

Good developers may do well studying a computer science curriculum, but the function of such a course is mainly a form of *identification and selection* of those with pre-existing capability or propensity, it does not function particularly well to actually educate an arbitrary student into a competent developer.

Indeed, I've known many working developers with no computer science background whatsoever - and although they weren't the best developers, they were clearly able to function substantially as developers.

So attempting to access the materials of a computer science course, would potentially do little to alter your situation.

A lot of would-be developers have also become obsessed with the idea that coding challenges are the secret to increasing their skills as developers.

There's very little correspondence between completing pre-set coding challenges and professional software development, and although coding challenges might be appropriate for very young children, they would be no more appropriate for an adult student of software development than completing simple arithmetic would be appropriate for an adult student of mathematics.


---

