2,214 reputation
813
bio website jelv.is
location Berkeley, CA
age 21
visits member for 3 years, 4 months
seen 2 days ago

I am a student interested in programming languages, functional programming, program synthesis, type theory, universal algebra and startups (not necessarily in that order!). In the near future, I want to combine as many of these as possible.

I am currently an undergraduate researcher at the Berkeley ParLab, working on program synthesis. This past summer, I was a tech intern at Jane Street Capital, brazenly using OCaml in the real world. Right now, I'm leading a meetup group about type theory; you can see the slides here or just show up to the next on if you live near SF ;).

I am always happy to chat: my email is tikhon@jelv.is

GitHub: http://github.com/TikhonJelvis

Website: http://jelv.is


Jul
4
comment Do they ask too much on this job?
@ZJR: I can't help thinking that "they love to give money to Apple" is probably the correct answer, for better or worse. I've certainly seen several companies happy to buy new employees new Macbooks rather than just passing down a used one.
Jul
4
comment What does it mean if a job requires a “Bachelor's degree in Computer Science or related field”?
Keep in mind that a lot of these people predate CS as a field. The very first CS program to actually have that name was in 1953. I imagine it took a while after that for CS programs to spread to other universities. But yeah, there is no question that a mathematics education can produce a great programmer (as well as other fields like Physics or EE). Also, one Turing award winner studied Political Science, of all things, but I think that is just a coincidence.
Jul
3
comment The most mind-bending programming language?
One surprising thing about Prolog is that a basic prolog interpreter is actually surprisingly simple to implement. The fundamental algorithms behind it (e.g. unification and resolution) turned out to be much simpler than I thought they would be.
Jul
2
comment Is it worth to learn Experimental Languages?
@JörgWMittag: I think that says more about Java than about Haskell though.
Jun
17
comment Programming Language, Turing Completeness and Turing Machine
Yes, the lambda calculus is the genesis of functional programming. However, even Turing machines are naturally expressed in terms of functions; the formal definition of a Turing machine is just a tuple of some sets, symbols and a transition function.
Jun
11
comment How do I completely-self-study Computer Science?
I'm doing EECS at Berkeley right now. If the MIT EECS program is structured anything like Berkeley's, then you won't get much guidance there: we have a short intro sequence and then it's literally do whatever you want in whatever order you want as long as you do a minimum number of advanced courses. I think it's awesome, but it probably won't help you figure out which courses to take: I had to make the same decisions myself. (I had help from my faculty advisor, but in a complete coincidence his advice was to take his graduate seminar :)).
Jun
10
answered Why don't browsers support haml and sass?
Jun
10
comment How do you stay in touch with a programming language?
People with lives, spouses, kids and so on manage to (for example) watch TV just fine. If you really enjoy programming, you could just spend equivalent time on your side project instead.
Jun
3
comment Programming languages, positional languages and natural languages
Sort of. Particularly, I'm thinking of languages where you represent computation primarily using mathematical ideas. Mostly functional programming languages like Haskell. So it doesn't just express mathematical concepts, it actually uses them for everything like representing state and IO. It's also closer to mathematical notation than a natural language.
Jun
3
comment Programming languages, positional languages and natural languages
@JarrodRoberson: While you are right, I don't think Turing completeness is a useful criteria to define a "programming language". Particularly, there are some very nice total functional languages that are not Turing complete but are still useful for writing programs (e.g. Epigram or Agda).
Jun
3
comment Programming languages, positional languages and natural languages
You should also note programming languages that are primarily inspired by math. At least in PL research, these are fairly common.
Jun
3
comment Is musical notation Turing-Complete?
What you listed is not necessary for a Turing complete language. Lambda calculus only has applications, variables and lambdas (e.g. no loops, states or commands) but is Turing complete. The same goes for a bunch of other models of computation like SKI combinators.
Jun
3
comment Is musical notation Turing-Complete?
Building a Turing machine is the standard way to prove something is Turing complete, but the converse is not true--simply because you cannot figure out how to build a Turing machine does not mean something is not Turing complete. A Turing machine (with a tape and all) is just an arbitrary abstraction that has enough computing power; there are other abstractions just as powerful with no notion of tapes. Take a look at lambda calculus, SKI calculus or some esoteric languages (Fractran is cool).
Jun
2
comment What's the difference between computer science and programming?
That's a little bit narrow. At the very least, the "Algorithms, Machines and People" lab at my university would like to disagree :). And that lab contains some of the top CS researchers, period. Also all the HCI people everywhere. I'm being a little facetious, but CS is really more broad than just algorithms and math.
Jun
2
comment What's the difference between computer science and programming?
Also, most of the people I know working as programmers don't do it for the money (although the money certainly doesn't hurt!): they do it because they love programming and they love making stuff and they love solving hard problems. Some of the smartest people I know could be making far more money in finance or the like, but instead they work for a startup or Google or Facebook just because they really love it. (Of course the salaries there aren't shabby either.)
Jun
2
comment What's the difference between computer science and programming?
Except it's not really a "science" in the same way as physics or chemistry: we don't even pretend to follow the scientific method. Even the "soft" sciences do experiments with control groups and the like; CS has more in common with engineering and math than actual science.
Jun
2
comment What's the difference between computer science and programming?
I don't think you should tie CS (despite the name) too closely to computers: first and foremost, it is the study of information. It just happens that the term "computer" encompasses most of the different physical tools we use to work with information, so almost any study of information is going to involve programming a computer.
May
31
awarded  Nice Answer
May
30
comment Maybe monad vs exceptions
Also, regarding (1): you could easily write a monad that can carry error information (e.g. Either) that behaves just like Maybe. Switching between the two is actually rather simple because Maybe is really just a special case of Either. (In Haskell, you could think of Maybe as Either ().)
May
30
answered Maybe monad vs exceptions