Core(CS) vs. Abstract(IT)
Credit: Internet

Core(CS) vs. Abstract(IT)

Dear Students,

When I conduct programming (not programming language) classes, the most common problem I come across is student's impatient approach in learning. They are in hurry to complete the class and start churning out the code. I always get the feedback that my teaching is slow and hence class duration is longer. Another feedback I get is that, other classes and institutes cover 100-150 programs during the course whereas you hardly cover 30 throughout the class. I simply tell them that, after learning 150 programs at a class if you can write the 151st program on your own then that's good. For me that benchmark is 31st program.


Whenever I give some coding assignment, students mostly turn in the code they pick up from internet where they use built-in library functions to get the task done. For example, if I ask them to reverse a string, 8 out of 10 students will use String.reverse() function when the objective of the assignment was to discover that reversal logic itself. As a student of programming, you are supposed to create your own code and not consume the existing code. Your code should be very explicit in how it is doing, what it is doing. I still find it hard to convince students not to use built-in functions. "Why should we reinvent the wheel?", is their favorite argument to justify their impatience and vapidity. Its OK if you don't want to re-invent but you may not always have the luxury to carry a stepney (a spare wheel) with you. So shouldn't you be able to build another wheel if one breaks down? That is not possible if you don't have the required tools in the kit. You cannot bypass the basics of programming and hope to be a great programmer.


As a beginner in programming, you should not try to impress people by writing smart code yet. You are going to get that chance when you will work on the projects. But now is the time to hone and tone your fundamental skills. So when a problem is given to you, first focus on the desired output. Do not worry about code efficiency. Keep your code as basic and simple as possible. Let it take more lines of code, appear clumsy at times because, in that detail flow of expression lies the devil. It reveals your approach to the solution and help you understand your thought process. Test your code for all possible input combinations. If you are satisfied that code is working for all test cases then you can take the next step like tuning and optimizing the code. That's next level in the programming skills.


I know this is not entirely a student's/job aspirant's fault. The the pace at which the technologies change in IT industry is baffling. There are so many languages, frameworks and tools to learn, that it develops FOMO syndrome in them. Sometimes they go on joining one class after another. No time for a skill to fully adapted and synced in. This confusing and chaotic environment lead them to work at an abstract level. Nobody is interested in learning core programming skills or subjects like DS or DAA. They find them difficult to comprehend and the worse waste of time. Everyone wants to learn the frameworks and APIs and put them to use in their codes. Many IT companies are actually promoting and fostering on such abstract level skillset and as a result we are producing assemblers and configurators under the disguise of titles like programmers, engineers, analysts, scientists and what not.


Its a separate article topic, but let me warn you about one thing. Bharat has been a primary IT service industry hub for decades and helped launch large number of products in market over the period. Our masters can reap the huge profits by maintaining the status quo. For that they must ensure that we do not use our brains beyond a sacred line where you can get the glimpses of the cream work in the industry like products R & D. Those jobs are conserved, preserved and reserved for the elite workforces. And you all will be playing in their hands if you keep suppressing your potential by avoiding to learn the core subjects of Computer Science and remain content with abstract level skills.


Bharat Bodage

Principal Software Engineer @ Abjayon Inc. | Azure Developer Associate | .Net Core

6 个月

In recent days, I have seen students are more worried about newer technologies like AI, ML, Data Science (Market Buzz Words). And they don't want to learn the basics of programming by understanding concepts in detail. They have to learn basics first because that is the way to enter into the IT industry.

Sameer Nene

Transformational Software Development Leader (Vice President | Senior Director | Director)

6 个月

Very well said!

要查看或添加评论,请登录

Sundeep Gawande的更多文章

  • Academic Digression

    Academic Digression

    Now a days reputation of an educational institute is not on based the academic discipline and results they achieve but…

    1 条评论
  • A Road to Perdition

    A Road to Perdition

    Bharat has been a primary IT service provider now for four decades. Over the period, she has played a pivotal role in…

  • Work-Life Balance Is Not The Real Issue

    Work-Life Balance Is Not The Real Issue

    When I started my journey, before two and half decades, the term work-life balance was rarely used in IT industry. The…

  • (Too?) Early Jobs

    (Too?) Early Jobs

    Dear Students, Since a decade or so and significantly in last 5 years there has been some shift in IT industry…

  • (N)ot an (E)asy (P)uzzle

    (N)ot an (E)asy (P)uzzle

    NEP - Its a buzz word in education sector since a couple of years now. The stakeholders are slowly coming to terms with…

  • Let Home Be the Home Again!

    Let Home Be the Home Again!

    One of the bad effects Corona pandemic had on some business sectors, especially IT sector is to push the workforce in a…

社区洞察

其他会员也浏览了