Sunday, May 05, 2013

General Advice


The time spent playing intramural sports, working on the school newspaper or just hanging with friends is important. Research indictes one of the most important causal factors associated with happiness and well-being is the meaningful connections with other human beings. One benchmark of your postgraduation success should be how many of these people are still your close friends in 10 or 20 years.

Marry someone smarter than you are.  You will do better in life if you have a second economic oar in the water.

Don't model your life after a circus animal. Performing animals do tricks because their trainers throw them peanuts or small fish for doing so. You should aspire to do better. You will be a friend, a parent, a coach, an employee—and so on. But only in your job will you be explicitly evaluated and rewarded for your performance. Don't let your life decisions be distorted by the fact that your boss is the only one tossing you peanuts. If you leave a work task undone in order to meet a friend for dinner, then you are "shirking" your work. But it's also true that if you cancel dinner to finish your work, then you are shirking your friendship. That's just not how we usually think of it.

Don't try to be great. Being great involves luck and other circumstances beyond your control. The less you think about being great, the more likely it is to happen. And if it doesn't, there is absolutely nothing wrong with being solid.

Saturday, April 20, 2013

Programmer duties

Programming is more than just writing code. Programmers must also assess tradeoffs, choose among design alternatives, debug and test, improve performance, and maintain software written by themselves and others. At the same time, they must be concerned with compatibility, robustness, and reliability, while meeting specifications.

Sunday, February 03, 2013

Praise For Failure

http://news.nationalpost.com/2013/02/02/in-praise-of-failure-the-key-ingredient-to-childrens-success-experts-say-is-not-success/

Failing earlier on in life gives us that ability to not freak out when it happens later on. Working on a hard mathematics problem is not to be afraid while feeling stupid. When you feel stupid, don't say to yourself, I'm stupid, but rather this problem is hard. I'll have to work hard on this, try out lots of different ways to figure this out, and not give up too soon. Just because you feel stupid doesn't mean you are stupid. Sometimes you have to be brave and endure feeling stupid for days, weeks, months, or even years, but if you keep working on the problem, you can break through and feel glad that you didn't give up. Feeling stupid is a sign you are working on a hard problem. It's not a reason to give up.

Monday, December 31, 2012

Negotiation

1. "Nibbles": Reach a general agreement (agree on a basic premise). Instead of instantly accepting the deal, push for one small concession at a time.

2. Before entering into a discussion, think about a 'BATNA' = Best Alternative To Negotiated Agreement. Are there other options? Is there a minimum you are willing to agree with?

3. "Expanding the pie": While certain points in contention may be very inflexible (salary, job position), "expand the pie" and seek out other areas which may be more flexible (vacation days, compensation). This also serves to clarify the central hinge of the negotiations.

4. Disarming Empathy. Essentially, the act of being empathetic (in a sort of self-deprecating way perhaps?) so that the other side bargains against themselves while you do not budge from your initial offer.

NB: Nibbles = get the other party to feel like this is a done deal, then push them for further small concessions. (nibbles are one-way) example: "gee, that job offer sounds great!! but there is one thing- just caught that I have to pay for parking. Can you do anything there to make up for that?" Expanding the pie = find a compromise that benefits both parties: "I understand you're extremely short on office space until the new office space is built out, and your office will be a painfully long commute for me until my lease runs out and I can move closer to the office. How about I work from home for a while?"

Sunday, November 04, 2012

Summer 2012 Compass draw result


Had very good matches and experiences in Summer 2012 compass draw. 2 losses to the same opponent  in the finals of the Seeding round and playoff round. Playoff round matchups:

Wednesday, October 03, 2012

New Age Learning


‎"The new education must teach the individual how to classify and reclassify information, how to evaluate its veracity, how to change categories when necessary, how to move from the concrete to the abstract and back, how to look at problems from a new direction — how to teach himself. Tomorrow's illiterate will not be the man who can't read; he will be the man who has not learned how to learn."

- Alvin Toffler -

Friday, July 27, 2012

Software communication

For any program or project spanning 3 or more people, there will be people-problems. X and Y don’t agree on much and solve problems in a completely different way, Person Z is analytical, and cold, while Person B is the best artistic, creative, unstructured thinker and so on. There are going to be personality issues, with  People misconfigurations  is the number one problem on any project with 3 or more people.  It’s all about communication and honest, respectful, direct conversations. Consider people first. Technology development is foremost a social problem. Communication and flexibility allow us to work better and happier. 

Thursday, March 22, 2012

Productivity Tips

Don't spend too much time on things no one sees. The full methodology one should adopt for all your work is Continuous Visible Productivity. Plan the work in terms of things other people can see and prioritise with respect to how many useful people see the result. A person who makes his boss look good is far more valuable than one who knows more technical stuff, so boss's fear of you leaving goes up without you doing anything. Any pitch for money must contain a mix of opportunities for your boss to look good with just enough fear that you might be leaving. Sound enthusiatic as everyone likes cheerful people and because it means the team is functional, which is part of business correctness.Say supportive and positive things at meetings. Demanding more money two weeks after the decisions have been made just annoys your boss.

Friday, February 24, 2012

Problem Solving techniques


1) The starting point is always the observation of anomalies/defects  in an existing system or pattern.
2) You reason on those anomalies/defects in your head, alone.
3) You come up with a possible response, alone.
4) You visualize in your head how this response would actually works. This should be practiced until you see it working smoothly from beginning to end. You do this alone.
5) Finally you set to work in order to bring this response into practice. Either alone or in a group-work.
6) Working alone: It forces you to know what you're doing, and every part of this. So you can have a deeper understanding. Plus, there's nobody to tell you what to do (For ex. "maybe if you did xx that would be better!"). So you find your own solution.
7) So when working  on your own, you gain more experience. It doesn't mean you shouldn't share it back. But you need to get some stuff done from A to Z if you want to be able to think by yourself.

Friday, December 09, 2011

Ideal Software development process

Architecture Phase:
Analysis:
  • Reason: Way the Business process works needs to be be reflected in the software solution created.
  • Steps: Review existing business process. Identify brand position.Identify user profiles.Create use cases.Research supporting technologies.
  • Deliverable:Project Analysis report
Interface Design:
  • Reason: To ensure software is intuitive, easy to use, and really does what you need it to do—well before moving into development.
  • Steps: Design an interactive prototype that allows all the project's stake-holders to engage with the system in real-time.
  • Deliverable: Completed User Interface design.
Usability Testing:
  • Reason: To ensure the software is effective and easy to use.
  • Steps: Use focus groups of target users to test the system and provide feedback until the function and usability is correct.
  • Deliverable: Software Usability report
Fabrication Phase:
Software Engineering:
  • Reason: You can't build a house without a blueprint.
  • Steps: Create the domain mode, data schema, programming API, documentation system help.
  • Deliverable:UML class and data model diagram.
Coding:
  • Reason: N/A
  • Steps: Develop system component, perform unit,coverage and load testing.
  • Deliverables:BETA deployed to staging servers
Beta Testing:
  • Reason:Find and eliminate problems before the software is launched. Well proven fact that a bug discovered in production is costs exponentially more to fix than the one found in development.
  • Steps: Test all use cases and conduct acceptance testing.
  • Deliverable:Deployment ready software

Production Deployment:
  • Reason:N/A
  • Steps:Prepare Server and deploy code to production.
  • Deliverable:Production code and documentation