• Skip to primary navigation
  • Skip to main content
pragati logo

Pragati Tech Services

  • Home
  • About
  • Services
    • Ecommerce Solutions
    • Customer Happiness
  • Blog
  • Contact
  • Show Search
Hide Search
You are here: Home / Archives for Education

Education

Overhauling IT Education in India

Sachin · April 29, 2015 ·

I feel that level of IT education is really pathetic in our country (except in maybe top 20% colleges like IITs and NITs). It may seem funny coming from a non-graduate like me, but running my own software company for over 10 years gave me enough exposure and interaction with programmers coming out of colleges and also teachers teaching them. I visited colleges often to give seminar, workshops etc.

I have observed that in most technical fields, everybody first wants to join a great company and earn big bucks. Engineers, MCAs want to join Microsoft, Google, TCS, Infosys when they come out of college. Students who are not selected by big companies, try to get job with small software companies and students who don’t get job with any software company end up finally applying for teaching positions with colleges. So basically we have failed programmers teaching programmers of future.

How can we expect this system to work? We need to change the system at many levels. Here are my thoughts in brief:

  1. We need to attract good bright people to become teachers.
  2. We need to partner with Software companies and involve working professionals to teach in colleges part-time or over the weekend.
  3. We need to make competitive coding contests compulsory to attend. Google Code Jam happens once every year. Should be mandatory for every IT engineering and MCA student.
  4. Every student should participate on challenges on websites such as HackerEarth, Codechef, Topcoder etc.
  5. Many courses from Harvard, Stanford etc. are available online and even free in many cases. May be they can be taught as it is to whole class-room with teacher just acting as facilitators.
  6. MCA is a Master’s program, but it’s considered inferior to engineering which is a Graduation program. It needs to be improved with greater stress on industrial training which is part of 6th Sem.
  7. Colleges should open incubation centers and encourage their students to become entrepreneurs. Maybe college can even have a stake in the formed company. Not all such startups will succeed, but even if a few do, govt. will easily make up the investment in other failed companies.
  8. Teachers normally don’t upgrade themselves with the time. They should be regularly asked to take courses and appear for exams themselves to keep improving.
  9. IT Teachers should also be allowed to pursue some programming related profession. Not teaching or private coaching business, but some real programming with some software company or independent programming work. It’s allowed for Architects and Doctors as they are quite practical intensive fields. It should be done for the IT teachers as well.
  10. Students should be made aware about open-source resources such as Github and made to participate in resources like StackOverFlow
  11. New and Emerging programming languages/ frameworks should be included in the curriculum — Ruby on Rails, Python, Node.js & of course Swift

Update: 27th May 2015 — Google has just published it’s own guide if you are looking at a Career in Software for yourself.

If given a chance, I would love to talk to Colleges and even Government in detail and explore how can we work along these lines and overhaul the IT education scenario in the country. Looking forward to hear thoughts from readers of this blog.

Hello Swift

Sachin · October 14, 2014 ·

Person holding Swift programming language sticker

I was thinking about learning Swift someday, but what really made me take the plunge was this article on Wired. This article has one of the best opening I have read, it goes something like this:

Chris Lattner spent a year and a half creating a new programming language — a new way of designing, building, and running computer software — and he didn’t mention it to anyone, not even his closest friends and colleagues. He started in the summer of 2010, working at night and on weekends, and by the end of the following year, he’d mapped out the basics of the new language. That’s when he revealed his secret to the top executives at his company, and they were impressed enough to put a few other seasoned engineers on the project. Then, after another eighteen months, it became a “major focus” for the company, with a huge team of developers working alongside Lattner, and that meant the new language would soon change the world of computing. Lattner, you see, works for Apple.

You can continue reading at Wired. After reading this article I spent most of my day stalking Chris online 🙂

OK so I started investing some time and money into it. I began by watching some really great WWDC Videos by Apple. Those videos were really helpful in getting me started quickly. I watched following videos to get upto speed quickly:

  • Introduction to Swift
  • What’s New in Cocoa Touch
  • What’s New in Xcode 6
  • Storyboards and Controllers on OS X

These videos should be sufficient to get started, if you have done even a little bit of iOS programming sometime in your life. Rest of the videos you can consume, as and when time permits or need arises. Next I headed to Apple’s official book on Swift. Do checkout the ‘About Swift’ section to better understand the philosophy behind this new language. Some pearls of wisdom from there are:

  • Swift is not compatible with C unlike Objective C. It frees itself from constraints of C by doing this.
  • Swift is friendly to new programmers.
  • It supports playgrounds, which is really a much improved REPL
  • Swift combines the best in modern language thinking. Many features inspired from Javascript, C#, Ruby etc.

Next is the very useful ‘Swift Tour’ section in the book which introduces you to the basics in a 30 mins read. If you have done all these things, you should be ready to do some programming in Swift. Fire-up the X-Code 6 and create a Playground project and start playing. If you don’t have a Mac or Xcode installed yet, don’t worry, you can write Swift code in Browser without installing anything at all, thanks to Skip Wilson

OK so I did all that and was feeling pretty happy with my progress so far and was all pumped up to really dive-into this new language and become an expert, but I didn’t know what to do next so really kind of got stuck for a few days, trying to figure out what should be my next step in learning Swift. Watching WWDC Videos one after the other or just reading a book didn’t really look interesting to me. I needed something to do, that’s the best way to learn I think. What did I do? Please wait for my next post to find out.

Wanted Hackers

Sachin · September 21, 2013 ·

Wanted hackers!! from Sachin Palewar

I gave a talk to MCA (Master of Computer Applications) students of GHRCE yesterday. Topic of my talk was ‘Wanted Hackers’ and objective was to inspire students to adopt hacker culture so that they can become better programmers and do great things in future.

At the outset I emphasised that Hacking is not actually what media and general public thinks it is and there is difference between hacking and cracking. Hacking is good, cracking is not. I showed a video of TED talk by Thomas Suarez: A 12-year-old app developer to inspire students.

Then I elaborated on various websites which organise programming contests and challenges. I also shared my views on which programming languages students should learn and from where.

I ended my talk with a brilliant video from code.org starring Bill Gates, Mark Zuckerberg, will.i.am, Chris Bosh, Jack Dorsey, Tony Hsieh, Drew Houston etc.

I hope my talk inspired atleast a few students to become good programmers and not average unemployable college passouts which are so common in India.

Programmers and Small Things

Sachin · October 11, 2012 ·

MacBook Air with Coconut on Desk

So often we are so fixated on big things that we don’t pay attention to supposedly small things. We realise it too late that those small things have hold us back all these years. I will talk about some of such small things in this post.

Typing

Nobody says it better than Jeff in his Coding Horror blog — “We Are Typists First, Programmers Second”. He quotes Steve Yegge in his post,

“I can’t understand why professional programmers allow themselves to have a career without learning to type. It’s like being, an actor without knowing how to put your clothes on. It’s showing up to the game unprepared. It’s coming to a meeting without your slides. Let’s face it: it’s lazy.”

Now my practical take on importance of typing is like this — If you can’t type fast enough, you would try to type less, you will avoid coding a long piece of code, you will skip writing comments or documenting you logic.

I always advise programmers to write comments with the code, but often hear excuse that code is still not finished and they will comment once its finished. My suggestion is comment and code simultaneously, if you change your code, change your comment as well, there is no harm is typing a few extra lines. Why risk waiting and forgetting to finally write comment?

Not only this often programmers have to exchange emails with clients or chat with them. Slow typists will take shortcuts here as well. They will skip answering some queries, will never give a detailed response on chat and I can go on and on.

There are many good websites out there where you can learn to type and even test your typing speed. http://typeonline.co.uk/ is one such site.

Reading

Now this is not just for programmers but almost everybody in today’s information age. We all need to read a lot these days and it takes a lot of time. The more you go up the ladder in any organisation, you realise that a considerable portion of your time is spent reading something or the other. You read emails, articles, news, books etc. Just imagine if you can somehow double your reading speed you will actually manage to save half of your reading time. That can make a huge difference.

In case of us programmers, we often read SDK Documentation, Technical Articles, blogs, and of course code. Now here too like typing if you are a slow reader, you avoid reading. You will skip reading complete definition of a class and thus forgo understanding it completely before beginning to use it. There are numerous little examples I can quote here. I often see a few guys hitting OK whenever an alert message or an error message pops up on the screen. Reason: They are too lazy to read all that text, but to a reader who can read faster, he will probably find it easy and would probably have read complete message before dismissing the dialog.

Speed Reading can help you learn more and do more in whatever you do in these times. There are many websites to help us in improving our reading speed and www.readfaster.com is one of them.

Communication & Logic

Programmers probably don’t realise this but programming is nothing but communication with computer. You communicate with computer in a language it understands. If you can’t communicate clearly with your peers, you probably won’t be able to communicate well with the computer.

You have to have ability to put your thoughts clearly and you have to have ability to understand what others say. A good understanding of requirements of client will often lead to a good Software. In most case a good communicator will be able to understand a bad communicator but vise-versa seldom works.

A good communicator would know to break down a complex problem into a set of simpler problems and solve them and thus finally solving the complete complex problem. A good communicator would know to ask right questions. Something which I find fascinating is that all programmers usually write Queries to get understandable data from Databases and when a query does not work, we say we don’t know the solution. However we don’t realise that ‘Query’ means a question in literal sense. So if our query is not returning the desired result then it means we are asking the wrong question. We can’t solve problems in most cases because we have never understood what the question is or what the problem really is.

This really holds true for life as well, we can’t solve a problem because we never know what the problem really is? Ability to understand the problem, ask the right questions and break the complex problems into smaller manageable problems is what communication and logic is all about.

You may also like to read — “communications 101 for programmers” to read an interesting post about importance of communications for programmers.

Email Etiquette

Now last but not the least a programmer writes a lot of emails. In most cases if you are not lucky enough to get selected right from the placement camp at your college, you will be soon shooting your resume in email to prospective employers. Now sample some of these real emails I got from some real candidates looking for a job.

  • I want to know whether there is vacancy for .net developer . just reply soon.
  • R/s, i m a passout student of batch 2011. i m fresher and want a job of software developer.If u have any vacancy then please inform me
  • applying in ur company for the vacancy in .net field, plz find my attached resume. Sir/Mam I am waiting for ur +ve response…

As you can see some are ordering me to just reply soon, some think they are having a casual chat with a buddy and that’s why their email is filled with all those chat slang and short forms. List is endless, I have misplaced a few very interesting emails which gave me a good laugh when they arrived. Unfortunately that’s the only purpose such emails serve, I have a good laugh and then just delete them.

If you can’t write a detailed email in a professional language it shows how serious you really are with your career.

Not only that I keep getting emails from candidates where they put email ids of all the Nagpur IT companies they can think of in the ‘To’ field. They may be thinking of themselves as smart people having achieved so much with a single email. Why write multiple emails when one is enough, right? NO COMPLETELY WRONG. You just proved that you are lazy and irresponsible and in most cases your email was deleted as soon as it arrived.

I would like to mention Apple here because it became the world’s biggest company by paying attention to details, details which other companies overlooked as being just small things. Small things do matter.

(Also Published in Hitavada Future Supplement dated 9th Oct. 2012)

Scrum and Gandhigiri

Sachin · July 16, 2007 ·

It was interesting to know about discussions Pete Deemer had with would be CSMs in his recent certification class. It was both inspiring and matter of feeling proud as he beautifully described how relevant Gandhism (Gandhigiri in lighter sense) is to the role of ScrumMaster.

Below text is what Pete posted in scrumdevelopment yahoogroup:

For those who weren’t in the class, the question was asked “How can the ScrumMaster have any power or influence, since the team doesn’t report to them, and they don’t have the authority to give orders?”

We talked about how in the absence of “managerial” authority, a ScrumMaster can still have enormous influence. But it’s earned influence, and it comes from gaining the trust and the respect of the team, by serving them zealously, and protecting them courageously. This isn’t the cheap authority that comes with an fancy job title; it takes time and work to grow, but it’s a lot more hardy and deep-rooted. And we talked about models for this out there in the world — starting with Mahatma Gandhi, a man who through courage and a spirit of selfless service changed the course of history, all without ever having a high title or powerful position.

Next Page »

Pragati Tech Services

Copyright © 2023