On the topic of good work

Good work requires a significant amount of dedicated time, even in areas where you have expertise.

I reflected on this as I am currently taking an intermediate Python course online with my friend Avinash. Since I am already familiar with the concepts, I often skip the lectures and dive straight into the exercises and quizzes. Each week, we are tasked with completing a mini-project. I usually allocate just enough time to finish the project and, more importantly, muster just enough motivation to meet the deadline.

During the Pong game project, I scored two points less in peer evaluation compared to others, even though I had given full credit to my peers. This made me question why I received a lower score. Upon reflection, I realized that I lacked the patience to fully polish the project to meet everyone's expectations, despite being fully capable of doing so.

This was quite a realization. It’s clear that I need to work on this and strive to improve.

Standing on the Shoulder of Giants

This is a story in two quotes, how Wilber Wright The Wright brothers, Orville Wright (August 19, 1871 – January 30, 1948) and Wilbur Wright (April 16, 1867 – May 30, 1912), were American aviation pioneers generally credited with inventing, building, and flying the world's first successful airplane. They made the first controlled, sustained flight of an engine-powered, heavier-than-air aircraft with the Wright Flyer on December 17, 1903, four miles (6 km) south of Kitty Hawk, North Carolina, at what is now known as Kill Devil Hills. In 1904 the Wright brothers developed the Wright Flyer II, which made longer-duration flights including the first circle, followed in 1905 by the first truly practical fixed-wing aircraft, the Wright Flyer III. found benefit in original work published by Louis Pierre Mouillard Louis Pierre Mouillard (September 30, 1834 – September 20, 1897) was a French artist and innovator who worked on human mechanical flight in the second half of the 19th century. He based much of his work on the investigation of birds in Algeria and Cairo. Around the early 1900s he was considered the father of aviation. 100 years ago, and built on top of it, for what he was pursuing.

And this is aviation; I give it to the world.

  • Louis Mouillard, French Inventor/Aeronaut (1834-1897)

We were on the point of abandoning our work when the book of Mouillard fell into our hands, and we continued with the results you know.

  • Wilbur Wright, American Inventor/Aviator (1867-1921)

Using my photo for endorsement? Google gone crazy!

I think, this is going off the limits and being explicitly evil.

When it comes to shared endorsements in ads, you can control the use of your Profile name and photo via the Shared Endorsements setting. If you turn the setting to “off,” your Profile name and photo will not show up on that ad for your favorite bakery or any other ads.

Isn't it crazy that you are using it in the first place without me allowing or endorsing?

comments

It looks like they're only going to use it for products you've endorsed (+1'd). Kind of, ahem, like a certain microblog service that tells me which of my friends follow the tweeter of that promoted tweet I'm looking at.

  • lahosken (@lahosken)

I realized that. :-) I got emotional thinking that Google was doing it for the whole web (adwords) instead of it being "in-network" endorsement (FB/ Twitter). I bet, if the later two got any benefit from doing outside their networks, they would do it too. And I hate them all.

It's good that Google is providing an opt-out, but dislike the idea of including one by default in changed ToC and then providing an option to opt-out.

What is the best way to learn a new programming language?

I was reading this survey by Inform IT asking various programming language book authors, this question "What is the best way to learn a new programming language?".

The common thread amongst all the responses is  work hard on it.  It takes time and involve yourself to the task by practice.

Following were some specific portions that I liked in various responses.

Lauren Darcey, had a solid advice in this form:

The best way to learn a language—whether it's a foreign tongue or a new programming language—is immersion.

Reading a textbook is not enough. Writing an app that compiles and sort of runs is not enough. You need to go deep, and you need to explore broadly.

Cay Horstmann,  shares an insightful statement in an extremely light-hearted vein:

Have realistic expectations. You might learn enough French or Mandarin in 30 days to ask for directions, and you might learn enough of a new programming language in the same time to program a simple game. But it takes months or years to be truly fluent in the new language.

I had taken Cay Horstmann's course at Udacity as I tried to improve my Java skills.

Danny Kalev, takes a scientific approach to learning as he states:

Linguistic theory distinguishes between first language (L1) acquisition and learning a second language (L2). Whereas the former occurs in a natural setting, during the critical age (0-7 years old) and has very good chances of succeeding, L2 learning requires formal teaching (textbooks, exercises and exams), and a lot of skill. Even after years of meticulous practicing, the results never compare to L1. Learning a programming language is similar to learning L2.

I can relate to this statement as my first language is Sourashtra. It has no well known writing system, scripts, literature or any cultural artifacts, like books, movies or songs. Everything we learn is from our childhood and from parents.  And all other popular languages like Tamil, English and sometimes Hindi is gathered by practice as secondary languages.

Coming to to programming, Bjarne Stroustrup, had the following to share about learning a new language.

 Consequently, the best way involves a Mentor who knows the programmer well and is an expert in the new language. That’s a luxury, we rarely have.

And his devotion to Computer Science is visible when he states:

 What is common for my books is that they assume the reader to be reasonably smart and willing to work to learn. I try to avoid oversimplification and sugar coating: programming can be a noble art and involves some skilled craftsmanship. I hope for readers who want to build real-world systems, rather than just toy programs to be able to get a grade or to tick a box on an interview form.

Here is the Link to the full article.

NO TITLE

Happy to pose with the astronauts of Apollo 13 Happy to pose with the astronauts of Apollo 13. James Lovell, John Swigert and Fred Haise. 

Apollo 13 was the third intended moon mission which actually failed on land on moon. The feat was to bring the astronauts back alive to earth and the team on earth managed it by propelling the shuttle to a free-fall on pacific ocean.

It was classed as "successful failure".

How to get better at Programming

http://youtu.be/qN7u1j44QTo

Richard M Stallman talks about it. I wholeheartedly agree with his claim. Programming is a craft, not a science, it cannot and should not been seen as academic exercise, like reading books, solving problems from scratch and feeling complete, but programming should help you build something, contribute to building of something, like you can contribute to an existing Free Software.

Excellent point.

Amar Bose (1929 - 2013)

Image

I have not owned any high-end audio system and i have only known Bose audio systems as one of the high-end and costliest ones. Recently did I come to know about the man behind Bose Audio systems and his passion for acoustics. Amar Bose went for quality research in acoustics and implemented them with his company Bose corporation.  I admire the Bose corporation's stance on concentrating on quality and not forsaking that for market conditions.

“I would have been fired a hundred times at a company run by M.B.A.’s. But I never went into business to make money. I went into business so that I could do interesting things that hadn’t been done before.” - Amar Bose

MIT News highlights his contributions in this field, his research and teaching.

Also, watch this video of Dr. Amar Bose sharing his experience to his students on his final lecture. He invites his TA's to share about their experience teaching and then goes on the share his experience as a young graduate student, drafted by his professors, who had confidence in him to take up a Maths problem of Norbert Wiener, when he was not a maths major and he shares his relationship with Norbert Wiener and how it all got started. Later he shares an anecdote on how the same "boring" job given to two students was taken up them in two different thought processes and how it changed the whole experience for them. The point which Dr. Bose is trying to make is, "we are never given a bad card", it is only how we make up in life.

My three wishes for Minecraft

  1. All versions, Android Pocket Edition, iOS Pocket Edition, XBox Edition and computer edition on Mac, Windows or Linux should have same features.
  2. All these should be able to join a server running on any of the other.
  3. Updates should be seamless and possibly happen in the background
  4. Image

Why do some people like programming?

Answer by Marcus Geduld:

- I like creating something out of nothing. That's not literally what you do when you're programming, because there's existing hardware and software that serves as a foundation for your work, but it sure feels that way. Someone has an idea and you build it from the ground up. When you begin, there's just an empty text editor. When you're done, there's a (hopefully) working program.

- I like building things people use. It's amazing to type up some code, press a button, and suddenly thousands of people on the Internet are playing with it.

- I like playing God. Programming allows you to build little worlds and then play with them, making adjustments and watching the effects. It's like owning a toy planet and saying, "I'm going to make it rain, today. Oh, look! All the little people have opened umbrellas!" This playing-God aspect of programming makes it similar to writing novels, painting paintings, or directing plays.

- I like working within systems that demand precision. This is exactly what some people hate about programming, but it thrills me. A misplaced semicolon or the smallest typo can be disastrous. This keeps me on my toes. It's like being the butler on "Downton Abbey" or "Upstairs, Downstairs." Everything must be just so. Some people like precision; others like being about to say, "I can't describe it, but you know what I mean..." I'm the former type.

- I like solving puzzles. If you want to see if programming is for you, try out this puzzle book: The Little Schemer - 4th Edition: Daniel P. Friedman, Matthias Felleisen, Duane Bibby, Gerald J. Sussman: 9780262560993: Amazon.com: Books

- I like research. Programming tends to involve much googling and reading through documentation.

- I like experimenting. There's a large component of trial-and-error.

- I like writing poetry, which is very similar to programming. Both the poet and the programmer are obsessed with words, obsessed with formal rules, obsessed with seeing how far they can push those rules, and obsessed with expressiveness. Programmers often talk about how expressive a particular programming language is. They mean something very similar to what a poet means when he tries to come up with expressive wording.

Both poetry and code can be exquisitely beautiful -- and in very similar ways. People are often surprised that I'm a programmer who also directs Shakespeare plays, but I've met lots of programmers who are into Shakespeare, crossword puzzles, scrabble, and so on. Joshua Engel is another Quora user who writes code and directs Shakespeare plays.

- I like communicating. Most good programmers will tell you that code is first-and-foremost meant to be read by people -- even to the extent that we'll sometimes write it in a way that is inefficient but easy-to-read.

- "There are only two hard things in Computer Science: cache invalidation and naming things." -- Phil Karlton. I love the hard work of "naming things." Programmers generally have to come up with short words or phrases that label parts of the systems they're writing. It's crucial that these names be clear and apt.

Why? Because if you name something cButton, the next guy who has to work on your code may be befuddled. If you'd called it closeButton, he would have instantly known what you were referring to. Sometimes "he" is me a few weeks (or a year) later, when I'm reading my own code. It's embarrassing to come across cButton and think, "What did I mean by that?"

Last week, I was modifying someone else's code. It was for as web page with sections. Each section had a logo at the top. The original programmer had referred to those logos internally as "headers," e.g. "header1" and "header2." I didn't notice that, and so I named something within one of the sections "header." When I later looked over the code, I got totally confused between his headers and mine.

Then I thought it over and realized that his "headers" were always graphical logos and mine were text. So I renamed his "logo1" and "logo2" and mine "title."

This is just one small example of the sort of naming issues that constantly crop up. You either enjoy this sort of thing or you don't. I do.

- I like learning. Like sharks, programmers die if they stop moving. Because technology changes so fast, being a programmer means that "school" never stops. Even though I've been coding for years, I must constantly read programming books, follow blogs, and so on. There's no coasting!

I got into the game as a Flash programmer, which was lucrative for about ten years. Now Flash seems to be on its way out, so it's back to the books! But even while I was mostly coding Actionscript (Flash's language), I needed constant training, because that language went through many versions, some as different from each other as Spanish is from Portuguese.

There are many good programming books and courses, but you can't really learn to code by instruction. That will get you started, but they only real way to learn is to write code, fail, analyse the failure, and learn from it. So you must enjoy being an autodidact. I do.

- I like being a detective. Maybe 60% of programming is debugging -- figuring out how something works. That often means a ton of sleuth work. Sometimes you have to pick and entire program apart and put it back together again.

- I like solitary work. Programming allows me to do lots of that.

- I like collaborating. Nowadays, Few programmers work completely alone. Most are part of a team, and they spend part of the week doing close work with others and part in isolation. I feel a strong need for both sorts of work, and I like alternating between the two.
View Answer on Quora