> I dont't really understand what point you are trying to make.
That the quality of NIT and IITs are decreasing. I have seen a lot of previous generation people who studied in IITs and have stellar achievements. But I don't think the same will be true for current crop of IIT and NIT students. To be clear, I won't be judging those people who are of my own generation, but this is a disappointment about how artificial the entry to these institutions has become. How many of them will be mechanically grinding leetcode as compared to their previous generation?
Increasingly so in recent years - the year I wrote JEE mains, the paper was much more susceptible to 'tricks' and 'shortcut formulae' taught by coaching institutions, than the previous years.
At this point, I have heard IIT professors expressing discontent about the coaching center crap. I don't know how you think it is still a fair game.
> I don't think there are any tier A colleges that takes money for accepting students. Probably explains why your batch had a lot of CS students who were not any good.
Fine, what defines tier A? I also mentioned lot of them with high state-level entrance exam scores are not "Good Enough", too.
In what I have seen, those people who do well in exams solely due to peer pressure and high expectations, don't very well understand the concepts. I have seen so many such book-worm topper kids not properly understanding recursion or algorithm complexity.
Yeah. Tier 1 colleges. Tell me more about NITs and IITs.
I study at a so colled top college. Where highest placement is always around 50-60 LPa. That doesn't mean teaching and other things are good (sure better than average, but that's not what I call 'good'). The highest placements are more because of students and a FEW professors who actually happen to be passionate.
But in the entire class, there are less than 15% of people who actually have interest in CS or Programming. Many came through good scores in entrance exams (myself included) and many through management quota (i.e Paying the institution heavy sums). While the first group has some people who like programming and CS, it also has more number of people who just happened to get good scores because of relentless studying and practice, then took CSE branch because placements.
I don't think NITs and IITs look much better these days. I attempted JEE but that was really hard to get an NIT without studying hard for 2-4 years. People who have money take coaching classes and study for JEE exclusively, but a rural student like me can't do that. The system is gamed like hell. With the abundance of such coaching kids, I don't think IITs and NITs can keep their previous charm.
Here is a paper on the Joint Entrance exam (JEE) tragedy:
As an Indian there are reasons you can point out for this.
Education:
Engineering syllabi are pretty outdated. And due to a work-just-enough-for-month-end-salary mindset, professors are against being up-to-date. As a result, everywhere but in top notch colleges, quality of teaching is piss poor.
The "Rat Race":
There is no better word to describe this. 90% of people who enter computer science / engineering courses don't have any interest in computers. They enter because they scored well in entrance exam (which can be games by studying some books relentlessly for some years), and since Software is still one of the highest paying fields. And quite some of them continue their relentless pursuit for a good "package" by grinding Hackerrank / leetcode. It is literally a rat race.
The same mindset will create an impression that being a manager is superior to being a programmer. Because you are "managing" people. These people do all kind of office politics to become manager, and spend rest of their life ruining someone else's life.
You can't expect these kind of people to love their job or even do it properly.
Hierarchy:
Related to above point, in India, you don't oppose or even question an upper officer or elder's decision, because ELDERS ARE ALWAYS RIGHT HERE IN INDIA. That's why so many people want to be manager.
Lack of interest in improving education:
In many Indian engineering colleges, one year is wasted teaching theoretical subjects like chemistry and physics. No computer science related subject except basic C Programming (Lol not even malloc() and free()) are taught. This appears to be purely done in order to provide jobs for people who had studied these subjects. While teaching these subjects may have marginal benefits, they are outweighed by pure rote learning oriented assesment sysem and wasting one year of CSE programme. That's a bad trade-off for someone interested in CS. All entrance exams are based on Math/Physics/Chemistry and we have learnt enough of that. STOP the old age tradition.
If the chemistry they teach in last two years of high school (called pre university here), which is quite high level, qualifies for entrance exams, Computer Science should too. No I am not telling this because it is a programmers forum. But CS taught in pre-uni (optional subject) is more essential and often more helpful than chemistry and half of physics taught to these grades. But chemistry is compulsory for some legacy reasons. There is no interest to change that.
Indian here. This piece may sound biased, but it is true.
The lockdown was a good step. But poorly enforced. /people think it is against their prestige if they are home quarantined/. Not much of rationale could be seen even during the lockdown. People always put emotions above logic and screw up everything.
People also stepped out of homes unnecessarily because they don't understand the seriousness of the situation. But it is like every other country, only that we have much higher population density and disorganised public.
But the darker side is that there are lot of people in India who Cannot afford to stop working and stay at home. And this means lockdown can't be completely obeyed at villages, where most of agricultural activity happens. Village people are harder to keep aware of social distancing as well. (No offence intended, in fact I am from a village). The agricultural activities confined to villages wouldn't have been a big issue if people reduced other methods of contact with cities / other villages. But they don't understand.
Since there is no Govt. support for COVID-19 patients, it costs some multiple times of a village person's income. That means people won't get tested even if they have slight idea about the pandemic and suspect they are infected - because they can't afford treatment even if they get tested.
COVID-19 is currently mostly limited to urban areas. I can't even imagine what happens if it spreads to villages.
* people are delusional because colleges are getting away with low quality work, because of the higher barrier of entry for competition compared to something like Udemy.
* People are getting delusional because of both low quality and high price.
Edit: disclaimer: I am a college student at thus I may be biased about what I see here in India. But I assume it is almost universal from other discussions here and on reddit.
Yeah I know. I had even detected using about:config to render Kannada text on the phone which didn't support it - it cost more bandwidth but 20MB was too much for a day at that time.
The other firms were worse in vision, thus Jio had an edge.
When I was using internet on a J2ME phone and Opera Mini, it cost INR 4 for 20MB airtime (2G!), which lasted 1 day. A GB of data cost somewhere around INR 250, and lasted a month. [1]
After Jio, these days I get around 30GB of 4G data for INR 150. That's the kind of improvement that changed people's lives.
Yeah the fake news is No. 1 issue in India, WhatsApp and Facebook spoiled this country. The elder generation naively believes what they read on whatsapp and that's terrible. The young generation is driven by emotions and identity politics not logic. But I think that's orthogonal to Jio the company.
[1] It is another thing that Opera Mini was freaking fast even on that network and didn't spend even 10MB per day for casual web page browsing. But if you want to get PDF or media content the internet was both slow and expensive.
Sort of. Airtel is costlier than Jio and BSNL is worse in many areas. BSNL 3G is not only slower but doesn't have half the coverage of BSNL 2G (which is mostly used for calls and SMS not internet).
Jio is slowly increasing prices but is still cheaper than Airtel as far as I know. And the speed, while not true 4G, is better than BSNL 3G IME.
At what point we, as an industry, failed to mandate a level of technical education for being a manager? Almost always the non technical people who can't think beyond quarterly profits and their resumes are the biggest problem of this industry.
Yes, Joel Spolsky and IIRC Jeff Atwood have written somewhat extensively about it.
We are in a bubble, if we read programming blogs and think about programming in our free time, we are definitely not the kind that FizzBuzz exists to filter out. But from the perspective of companies, it makes sense if they really understood pointers or recursion or graph manipulation, because there are so many people lying on their resumes, not having sufficient analytical skills despite doing some resume driven cargo cult development etc.. And as an industry we don't really have an alternative to these algorithm interviews at scale, at the point we rely on non technical HR people to filter out resumes for us and they literally grep for framework/language experience.
The point is, they should not actually require candidates to recall these things from memory. But there is certainly value in the non-memorization part of this knowledge and the ability to solve this kind of problems distinguish people who can think from those naive jobsworths. If nothing, they are better than back-of-the-newspaper if-you-have-seen-the-answer-you-know-the-answer kind of trick questions.
1) Non nullability can be implemented in language without generics, and for all types instead of just pointer types. That can be used to enforce null checking with pattern like:
if let var_name = nullable_var {
// use var_name as non nullable
} else {
// nullable_var in null, handle null case
}
And any tagged union can be reduced to nullable of member type without pattern matching, with some specific syntax. It is not hard with an imperative language.
2) Without generics, you are probably reinventing the same code, or using reflection which is not even type safe, or worse, using code generation. For instance D has generics AND good compile times. I guess Nim compiles fairly well too. Or you can choose partially type erasure based generics with a different tradeoff. There is no point in not having useful generic functions on generic data structures in a language that came in 2000s.
Once write Python or ruby or something and come back to Go. People without knowledge of other languages with generics tend to think you are writing for loop in while loop in if - else break monstrosity because native compilation and performance come with a cost in expressiveness, while it need not be.
I told type system is not the bottleneck, codegen is.
Even if you count the size of ode after monomorphization, I am pretty sure the Go compiler compiles it much faster. Because the compiler is not in the benchmarks rat race of adding one optimization pass from every academic paper in the world for diminishing returns. That would be unnecessary for a development compiler.
Go compiler could have an optimized slow build option, in ideal world, but that's a different matter altogether.
RedReader and Slide come to mind.
Edit: that was on Android, I guess there are alternatives for iOS too, even if less likely to be open source.