J

Jon Skeet

msmvps.com · Personal blog · on HN since 2008

Jon Skeet, a well-known C# developer, writes about C# features, date/time handling, dynamic typing, and why programming is hard.

What HN saysHN commenters recommend his Edulinq series for learning by reimplementing LINQ, and cite his posts on C# async and programming difficulty.
44HN people shared it
12linked it in comments
61stories submitted
461story points
12 years agolast shared
2008people per year2026

Most-shared posts

  1. 1
    OMG Ponies (Aka Humanity: Epic Fail)
    4 people · 127 points · first shared 2009 · 27 comments on HN
  2. 2
    The joys of date/time arithmetic
    3 people · 7 points · first shared 2010 · discussion on HN
  3. 3
    Where do you benefit from dynamic typing?
    3 people · 4 points · first shared 2009 · discussion on HN
  4. 4
    Google asks Jon Skeet to give up his Microsoft MVP award
    2 people · 26 points · first shared 2009 · 15 comments on HN
  5. 5
    Programming is hard
    2 people · 14 points · first shared 2009 · 3 comments on HN
  6. 6
    Writing the perfect question
    2 people · 7 points · first shared 2010 · discussion on HN
  7. 7
    How to hand-craft your own presentation slides.
    2 people · 2 points · first shared 2010 · discussion on HN
  8. 8
    Initial thoughts on C# 5's async support
    2 people · 1 points · first shared 2010 · discussion on HN
  9. 9
    Jon skeet
    2 people · first shared 2011
  10. 10
    C# 6: First reactions
    1 people · 117 points · first shared 2014 · 65 comments on HN
  11. 11
    The future of "C# in Depth"
    1 people · 35 points · first shared 2012 · 3 comments on HN
  12. 12
    Type initialization changes in .NET 4.0
    1 people · 21 points · first shared 2010 · discussion on HN
  13. 13
  14. 14
    Just how spiky is your traffic?
    1 people · 8 points · first shared 2009 · discussion on HN
  15. 15
    Diagnosing weird problems - a Stack Overflow case study
    1 people · 7 points · first shared 2012 · discussion on HN

What HN people wrote when they linked it

Xdes · 2014-03-03
One of the best ways of understanding something is to implement it yourself. To that end Jon Skeet has already documented how to do it in his Edulinq series[0][1]. [0] Link to series: http://msmvps.com/blogs/jon_skeet/archive/tags/Edulinq/default.aspx [1] Download of series (found in link): https://code.google.com/p/edulinq/downloads/list
hasslblad · 2011-10-18
I agree with this. At first glance the problems he presents are simple, then you realise all the design decisions they've made and the pros and cons of each approach they were aware of when writing C#. On a footnote I also recommend Jon Skeet: Coding Blog - http://msmvps.com/blogs/jon_skeet/ He's known in the .Net community. He's the guy behind Tony the Pony. He's a Google staffer who has written some C# books. He goes into great depth about C# stuff.
gtani · 2011-06-22
(I don't follow C# 5 but inability to generate tail calls in C# seems to be a significant issue: http://fsharpnews.blogspot.com/2010/12/performance-related-features-in… (comments) http://msmvps.com/blogs/jon_skeet/archive/2010/10/29/initial-thoughts-…
kenjackson · 2011-01-08
Programming is hard, period. Knuth has noted that its so difficult for him that when he is programming he can't teach courses, and he's among the best programmers in history. Jon Skeet wrote a blog on the topic: http://msmvps.com/blogs/jon_skeet/archive/2009/01/29/programming-is-ha… Jon Skeet is right. Programming is hard, except the most trivial tasks. And anything that is not trivial is probably broken. But we're OK with things being a little broken, and we've made users bend to our will sufficiently now that we have pushed much of the cognitive load to the users.
snprbob86 · 2013-06-29
The IoC threads work by converting park-able functions into Single-Static Assignment (SSA) form [1] and then compiled to a state machine. Essentially, each time a function is "parked", it returns a value indicating where to resume from. These little state machine functions are basically big switch statements that you don't need to write by hand. This design is inspired by C#'s async compilation strategy. See the EduAsync Series [2] on John Skeet's blog, and the compilation post [3] in particular. Once you have these little state machines, you just need some external code to turn the crank. [1]: http://en.wikipedia.org/wiki/Static_single_assignment_form [2]: http://msmvps.com/blogs/jon_skeet/archive/tags/Eduasync/default.aspx [3]: http://msmvps.com/blogs/jon_skeet/archive/2011/05/20/eduasync-part-7-g…
estebank · 2013-05-30
Jon Skeet's "The joys of date/time arithmetic" http://msmvps.com/blogs/jon_skeet/archive/2010/12/01/the-joys-of-date-… His talk in London Dev Days 2009, also goes into problems you can have with dates and timezones (including Argentina's 2009 last minute time zone change back into not using daylight saving time). http://vimeo.com/7516539
bxbb · 2013-04-12
for a longer, funnier, and mind-blowing explanation from Jon Skeet about time: http://msmvps.com/blogs/jon_skeet/archive/2009/11/02/omg-ponies-aka-hu…
euroclydon · 2010-08-10
I just looked this up on Jon Skeet's website, and apparently he doesn't know either. Here is a lively thread where he posed the question to his readers: http://msmvps.com/blogs/jon_skeet/archive/2009/11/17/where-do-you-bene…
dahjelle · 2011-11-30
> They either want a full system, or just a product. While I think this is true at the moment, it seems that there is an interesting question behind that, as well. Why don't more people want to create their own software? I do think the author has an implicit point: because, frankly, creating software stinks. Jon Skeet's talk [1] demonstrates this admirably. I spend a shockingly large part of my time working around bugs and leaky abstractions in other software rather than implementing my own ideas. I don't know if it is possible to design a system with a solid enough abstraction that these problems don't exist. I do know that HyperCard came unusually close, as I know several folks who made HyperCard stacks who wouldn't imagine creating software in any typical fashion. I hold out hope that such a useful system could be created again, one that gives people enough flexibility to create software solutions of their own (perhaps within a genre of software) and that is able to combat the currently-accurate stigma of programming being "hard". [1] http://msmvps.com/blogs/jon_skeet/archive/2009/11/02/omg-ponies-aka-hu…
noblethrasher · 2011-05-16
C# is the lingua franca of .NET so you would be best off studying that first. It's still a simple language, especially if you know C++. I recommend "Pro Visual C++ 2005 for C# Developers" (it maps C# concepts to C++ but you can go the other way), "The C# Programming Language 4th Edition (with annotations)" and "C# in Depth". Then, of course, just solving problems with the language. Next you want to get the latest edition of "CLR via C#" to get a very in depth look at how the CLR works. Once you're comfortable with C# and the CLR, you can pretty much figure out how the major frameworks must work. For instance, you can understand about 90% of ASP.NET just by learning two classes and two simple interfaces. Some other good online resources are: http://stackoverflow.com/questions/9033/hidden-features-of-c http://stackoverflow.com/users/88656/eric-lippert http://stackoverflow.com/users/22656/jon-skeet https://msmvps.com/blogs/jon_skeet/ http://blogs.msdn.com/b/ericlippert/ Oh, if you really want to accelerate your C# learning, try writing code without using `if`, `while`, `for`, `switch` and `goto` (obviously).
pbhjpbhj · 2010-06-28
There are two standard rebuttals. One is that the thickness of the vessels wall (hands-breadth) is not taken into account in the establishment of 3 as the value being used for pi despite this being mentioned right there in the text, this apparently gives a value of 3.1414 for pi. The other is that 1 Kings 7:23 reference uses a special rendering of the term line (Hebrew numbers are expressed using letters) such that the ratio of line to ordinary line and the rendering in the text give the actual value as: 3 * 111/106 This gives Pi accurate to 0.00026%. This all seems quite ex-post-facto but Hebrew has a strong tradition of numerology and this "special" variant of the word line is used only 3 times and always referring to circular objects. --- Example references: (short) http://msmvps.com/blogs/coad/archive/2010/05/14/pi-in-the-bible.aspx, (longer) http://www.bibleprobe.com/pi.htm, (several refs) http://www.math.ubc.ca/~israel/bpi/bpi.html, (with alternate based on "hands-breadth") http://ldolphin.org/pi/index.html though I'm not sure on the original source.

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close