Live data from Hacker News

Ask HN: Projects for learning a language?

news.ycombinator.com

51–60 of 61 posts

Re: Ask HN: Projects for learning a language?

#53

I don't know if I would recommend it, but I've noticed that in the past, whenever I moved to a different type of computer/OS (Amiga, MS-DOS, Windows, etc.) or language (Java, Javascript, etc.), I ported my biorhythm program to the new system/language. It starts out simple - just strings, math, file/screen input/output, then progresses to graphical plotting of the biorhythm curves. It's a simple algorithm. Disclaimer,…

Mine was sunrise/sunset and phases of the moon. And more graphical: planet orbits, watching for alignments.

Coincidentally, my biorhythm program would tell you various things about yourself (birthstone, zodiac traits, yin/yang, Chinese animal, numerology, but also the phase of the moon the day you were born). Yeah, I threw in everything I could find/calculate.

Re: Ask HN: Projects for learning a language?

#54
I made a Flash game way back in 2004 called Proximity[1] that was fairly popular. Whenever I want to learn a new language/platform, I tend to port a new version of that game to that language.

I don't always release it publicly, but it's a 'solved' program that I don't have to spend time reworking how the core of it works (needs a hex grid with number tiles, mouse or keyboard input, a menu system, computer opponents, etc), although I might rework some things or add new features to it.

I've done this to learn C# (and XNA), Java (and J2ME), Objective-C (and OpenGL ES), Swift (and SpriteKit), and LUA (with Pico-8).

I've also made versions in Python (text console), for Kindle, and the original was in Flash, but I knew the tech ahead of time.

I recommend it. Can be anything relatively simple. Make a blackjack game, a version of tetris, a Todo app, a Sudoku solver, a web service, whatever seems interesting to you.

[1]: https://www.newgrounds.com/portal/view/183428

Re: Ask HN: Projects for learning a language?

#56

For learning Rust I just picked a random, reasonably sized C++ project and spent a few weeks porting it to Rust. Was more than enough to get a grip on the core language features and tools and start receiving interview offers for a Rust position (though I ultimately decided to stay on the JVM track). The project was a face detection library: https://github.com/atomashpolskiy/rustface

Can you talk more about how you evaluated career options for rust vs jvm and what kept you on the latter?

Re: Ask HN: Projects for learning a language?

#57
post #56

For learning Rust I just picked a random, reasonably sized C++ project and spent a few weeks porting it to Rust. Was more than enough to get a grip on the core language features and tools and start receiving interview offers for a Rust position (though I ultimately decided to stay on the JVM track). The project was a face detection library: https://github.com/atomashpolskiy/rustface

Can you talk more about how you evaluated career options for rust vs jvm and what kept you on the latter?

Yeah, it seems like 90% of Rust jobs that are realistically accessible for someone with my background (different servers for the most part) are in crypto space, which I dislike, and there are very few of them as well. Java gives me better and more numerous options to choose from, and recently I even landed a Scala position in a very interesting domain. So it's about variety and job safety after all.

I also would not want to program in Rust for 100% of the time. It's a great tool to have for certain mission-critical types/parts of software where the cost of a mistake is high, but it also can be very frustrating to work with, at least until you become proficient with the idiomatic ways to structure programs and code in Rust. And even then I would not pick it for R&D type of work for instance, where you have to experiment and refactor a lot. Borrow checker is something you have to keep in mind at all times, and as I said already it can be extremely frustrating when you simultaneously have to think about design, execution logic and performance. Doubly so when the parts you're working on are not going to be concurrent in any foreseeable future.

OTOH, I can see how coding something well-defined and to the spec can be rewarding and less expensive in the long run with Rust.

Re: Ask HN: Projects for learning a language?

#58

I made a Flash game way back in 2004 called Proximity[1] that was fairly popular. Whenever I want to learn a new language/platform, I tend to port a new version of that game to that language. I don't always release it publicly, but it's a 'solved' program that I don't have to spend time reworking how the core of it works (needs a hex grid with number tiles, mouse or keyboard input, a menu system, computer opponents,…

Hey, cool game! It's rare for me to like new games (new for me, of course), but I like your's and been playing it for the last couple of hours..

Re: Ask HN: Projects for learning a language?

#59

I made a Flash game way back in 2004 called Proximity[1] that was fairly popular. Whenever I want to learn a new language/platform, I tend to port a new version of that game to that language. I don't always release it publicly, but it's a 'solved' program that I don't have to spend time reworking how the core of it works (needs a hex grid with number tiles, mouse or keyboard input, a menu system, computer opponents,…

Hey, cool game! It's rare for me to like new games (new for me, of course), but I like your's and been playing it for the last couple of hours..

Thanks! I made a sequel and released it on Xbox 360 and iPhone a long time ago, but let the code atrophy for a while. I finally resurrected it and started cleaning it up and improving it a couple of years ago, but at one point decided to do the 2D->3D conversion and ended up rebuilding it again.

Trying to figure out a way so potentially hundreds of viewers on Twitch can play along with a Twitch streamer, essentially joining a team and voting for where to place their tile, or just play like normal. Had to take a break working on it recently (job hunting), but I hope to jump back into it after I get settled at a new job.

I need to do a newer update video (you can play a full game now, more focused on adding menus and streamer support right now), but you can see kind of what I'm doing with the third game here, if you're curious. There's videos of Proximity 2 in action on my channel as well:

https://www.youtube.com/watch?v=0IAx9fsBuus

Re: Ask HN: Projects for learning a language?

#60
post #32

Build something that solves a problem you have right now. Even if it's a trivial problem and nobody else will be able to use the solution except you. That forces you to think real world usability etc

I see this recommendation rather often, but it's rather unhelpful. I certainly can't think of any such problem that I have.

Feel free to make a more helpful suggestion!
Post reply on HN