I'm mainly trying to think of something to do for my undergraduate thesis, but I'm also curious about the projects you would work on that aren't academic.
I would emerge myself into the world of data science and big data. It's the new frontier and is where the web was 15 years ago.
The trend I've seen with web development is that it's mostly a primary skill. While data science will be a primary skill for many, it has the capability to be a much sought after secondary skill in other industries like finance, health, and actuarial science.
I don't see that much demand for it. For example if you look on the HN seeking freelancer thread, most people are still looking for RoR or PHP. I don't see much of "please analyze my data and help me make decisions".
And random side-rant, why are so many people looking for AngularJS developers when I see almost 0 single page application type websites in my day to day life? What are all of these companies using it for?
I've written dozens of sizable single page apps that you'll never see because they're behind a firewall that only my company and its clients can access. Not sure about everyone else.
I wouldn't expect to see much on the freelancer thread.
Working in advertising tech, we'd be looking for someone to join the team on a permanent basis. Even with data science fundamentals, you have to marry that with a thorough understanding of the industry to develop that productive intuition about how to help folks solve their data problems.
I don't see that much demand for it. For example if you look on the HN seeking freelancer thread, most people are still looking for RoR or PHP.
True, but HN is not particularly representative of computer science or software engineering related fields (well, it is, but only a small percentage). There's a lot of stuff going on out there both in industry and academia that doesn't make it here or get particularly represented in the jobs/freelancer threads.
Large companies and governments are obsessed with big data and data analysis.
You need a degree or relevant past work to land those jobs though.
There are also companies that you would work for that would provide these services rather than being hired or contracted by the company directly. (like SAS)
I mean, it pays my bills. But they're mostly large corporations that hire consultancies that specialize in this sort of thing, rather than hiring freelancers--much less posting about it online.
If you make it open source and not-ad-supported, committed to a Users First covenant that I need to write up, I'd promote the hell out of it. See https://news.ycombinator.com/item?id=8086694
was going to use gpg to do most of the stuff (since I'm no cryptographer), and charge per gigabyte for the servers I host (just enough to cover costs).
the idea was hosting it yourself would be free, easy and of course, open source.
Honest question, why not just go with diaspora*[0], which seems to run relatively smoothly and already has a (small) user base? Is there functionality they do not posess or are there issues with their architecture?
Now this may be old, but it had something called "pods" which I think are servers. And you have to run one, or register with one. Once done it would store all the data. There didn't seem to be a way to have intra-pod communications. This didn't feel sufficiently decentralized for me. Basically it seems more like a tool to create your own facebook. I still have to trust the guy running the pod.
I was expecting a locally running app, with all my stuff available to it, one or more bitcoin style IDs and external servers acting as a napster style introductory service, which once complete would have nothing to do with the encrypted p2p communications that followed.
I think with a sufficiently scoped out messaging protocol and simple demo client software something new and important could be created.
Since everything would be encrypted for the end-recipient it may well be data intensive, if sharing videos amongst many people for example, but perhaps some shared secret/ one-time pad/ dropbox (old and new meanings) would be a good solution to this.
If you make it open source and not-ad-supported, committed to a Users First covenant that I need to write up, I'd promote the hell out of it. See https://news.ycombinator.com/item?id=8086694
My current pet project is a Diplomacy adjudicator API. There are some dated web apps out there where you can play the game online, but I'd like for there to be well-tested and refactored backend as the basis for more modern web and mobile apps. Given the time, I would build this API out to pass Lucas Kruijswijk's test cases[0]. Probably not scholarly-level stuff, but it sounds fun and there's much to learn in such an ambitious project.
I would take a pet problem that I have and solve it well. Something so personal that nobody else would solve it. A personal time management app just for me. A way to manage all my contacts so that I can keep up with them intelligently. Something to get me to do that tasks I procrastinate on the worst (like going to the Dentist). There are a million general tools for this, but having your own perfect tool is like having a superpower. And it's a great way to get to know yourself.
Alternatively, you could become the world expert in something small and bizarre. Like VIM. Just kidding. No, like some API. I got to know the MTurk api, and it then became an expert at it. Then people started treating me like an expert. It was cool.
A third approach is find somebody you want to learn from and work with them. Any project you pick will never be as important as what you learn from the project.
Ha, fancy seeing you here (if that username matches up with a certain athena account)...!
That's a very good observation about becoming an expert at a particular niche. The same thing sort of happened to me one summer, when I researched so-called "Blue laws" in the US. Spend a summer diving through microfiched historical laws in the library and soon enough you know more than anyone else in the world on the subject! It's quite an interesting feeling.
However, as hmslydia said, I think an API could be a good niche here.
> A third approach is find somebody you want to learn from and work with them. Any project you pick will never be as important as what you learn from the project.
Finding a good teacher for whatever skills or traits you want to develop is incredibly hard but easily one of the most rewarding things you can do for yourself
I'd work on doing all the political and fundraising piece of building some new trails in a local state recreation area. Sure, this isn't IT related, but it strongly benefits the local community and due to having a number of obstacles (funding, gaining community acceptance, getting land manager support) it'd be a full time job for half a year.
As a guitarist who jumped over to software engineering:
1. An online metronome that allows you to save practice notes, track a history of tempos you've used, and allow you to record/save 30 second clips for reference.
Finish writing my novel. Sure, I write after/before work (as did many famous writers as described in the really great book[1]), but it's HARD, and it's taken me 2 years to finish a first draft.
I daydream about my schedule: up at 8, exercise, write/edit from 9-12, then again from 1-2,then do the rest of the mundane stuff that builds up in a day. 100k polished words in 6 months, easy peasy.
Its a fun project, I did this back in 2012 or some such, and gained 5x different mini projects out of it (shorts, etc.)
Makes you crunch out quantity, which is good for aspiring authors. Learning how to say "it doesn't matter" until you start to edit. Meaning, just get it done.
Academic wise I am interested in data, and human factors in programming. It might be interesting to develop a database API that is resistant to attacks. ORMs typically provide such an interface so maybe pick one of the NoSQL databases that doesn't already have a ton of ORM support.
As part of teaching myself python, I put together a small GPS logging/analysis package[0]. I have lots of ideas for extending it, so I would work on those.
I am also interested in gaining some hardware experience and seeing what sort of home automation things could be done with hardware like arduinos and raspberry pi. Associated with this, I am interested in exploring the options for natural language control through the inclusion of speech recognition and perhaps neural networks. The goal of this would not be AI, but to be a trainable system which might handle home control work.
I would churn out a few books on leanpub, around areas of interest to me--another cordova book, a revision of my current cordova book, one on business process automation using APIs and google services, and one on green/sustainable investment.
I would implement cassowary (the constraint solving algorithm) in Clojure/Clojurescript. And then I would try to find a good way to make it usable for layouting in React-based environments. I think it could be done in a shorter timespan.
I have no free time. The common curse of every coder are infinite ideas vs. limited time. So if I want to take free time from this curse, I would go offshore sailing for half a year to ensure I have no internet.
I support a web-based ERP system. I'd love to develop a feature for reporting support cases directly from the system that is context-aware enough to describe an issue better than most of our clients do when they call or email.
Continue my work on connecting robots and avatars to simulated connectomes but do it full time and make some really cool break throughs, and more importantly, some very useful devices!
http://www.connectomeengine.com
Not a software project, but I would try to learn mathematics properly and in depth. This isn't something I've had the time or opportunity to do.
I would get a stack of basic and undergrad textbooks, maybe a copy of Mathematica, maybe also a tutor, and just start at the beginning to see how far I could get.
A better understanding of math would directly impact your skill as a programmer. It might be worth it to float the idea with your job and see if they can help you with that. Then demand a raise because of your increased value.
I don't know where you found it but thank you sir! Very enlightening and helpful for those things you get rusty on. Calculus was 6 years ago now for me and just skimming over what is in this sheet helps a hell of a lot. Awesome!
An HTML/CSS prototyping framework that is dead simple for designers to use. They would only write the code in an easy to organize way (layouts and snippets) and the tool would take care of building everything, live reloads, creating documentation from comments, collecting feedback from stakeholders, and serving it up.
I've been wireframing for a while and have yet to reach a solution I really like.
At the moment I have three projects I would pick one from to finish:
1. an e-mail server with a web server that can be deployed on a cheap device (raspberry pi) to offer pgp mail to non-technical persons
2. a docker orchestration system (docker is supposedly working on one already, but where's the fun in waiting)
3. I have this idea for a "Game of Life"-like game where instead of life being dependent on adjacent life, life would be dependent on energy equally distributed over the grid, and life could store and expend energy to execute operations like replication and movement.
179 comments
[ 2.9 ms ] story [ 205 ms ] threadThe trend I've seen with web development is that it's mostly a primary skill. While data science will be a primary skill for many, it has the capability to be a much sought after secondary skill in other industries like finance, health, and actuarial science.
Where are you seeing all the demand?
Working in advertising tech, we'd be looking for someone to join the team on a permanent basis. Even with data science fundamentals, you have to marry that with a thorough understanding of the industry to develop that productive intuition about how to help folks solve their data problems.
True, but HN is not particularly representative of computer science or software engineering related fields (well, it is, but only a small percentage). There's a lot of stuff going on out there both in industry and academia that doesn't make it here or get particularly represented in the jobs/freelancer threads.
You need a degree or relevant past work to land those jobs though.
There are also companies that you would work for that would provide these services rather than being hired or contracted by the company directly. (like SAS)
https://github.com/feross/webtorrent
https://github.com/jbenet/ipfs
it's a big thing I want for myself, and I know many others who would like it too.
on paper, striking the balance of ease of use and security is hard, since gmail exists. :\",
was going to use gpg to do most of the stuff (since I'm no cryptographer), and charge per gigabyte for the servers I host (just enough to cover costs).
the idea was hosting it yourself would be free, easy and of course, open source.
[0] https://diasporafoundation.org/
I was expecting a locally running app, with all my stuff available to it, one or more bitcoin style IDs and external servers acting as a napster style introductory service, which once complete would have nothing to do with the encrypted p2p communications that followed.
I think with a sufficiently scoped out messaging protocol and simple demo client software something new and important could be created.
Since everything would be encrypted for the end-recipient it may well be data intensive, if sharing videos amongst many people for example, but perhaps some shared secret/ one-time pad/ dropbox (old and new meanings) would be a good solution to this.
https://scott.arciszewski.me/blog/2014/07/poll-next-project-...
As soon as I have free time again (ha!) I'm going to chip away at it.
http://jazzchords.org/
https://github.com/gitaarik/jazzchords
0: http://web.inter.nl.net/users/L.B.Kruijswijk/
I agree, this would be a fun project and not trivial.
Alternatively, you could become the world expert in something small and bizarre. Like VIM. Just kidding. No, like some API. I got to know the MTurk api, and it then became an expert at it. Then people started treating me like an expert. It was cool.
A third approach is find somebody you want to learn from and work with them. Any project you pick will never be as important as what you learn from the project.
That's a very good observation about becoming an expert at a particular niche. The same thing sort of happened to me one summer, when I researched so-called "Blue laws" in the US. Spend a summer diving through microfiched historical laws in the library and soon enough you know more than anyone else in the world on the subject! It's quite an interesting feeling.
However, as hmslydia said, I think an API could be a good niche here.
Finding a good teacher for whatever skills or traits you want to develop is incredibly hard but easily one of the most rewarding things you can do for yourself
1. An online metronome that allows you to save practice notes, track a history of tempos you've used, and allow you to record/save 30 second clips for reference.
2. A new full length album :)
I daydream about my schedule: up at 8, exercise, write/edit from 9-12, then again from 1-2,then do the rest of the mundane stuff that builds up in a day. 100k polished words in 6 months, easy peasy.
[1] http://masoncurrey.com/daily-rituals/
Then you can tell people you're working on your SECOND novel, which sounds way cooler.
Makes you crunch out quantity, which is good for aspiring authors. Learning how to say "it doesn't matter" until you start to edit. Meaning, just get it done.
As part of teaching myself python, I put together a small GPS logging/analysis package[0]. I have lots of ideas for extending it, so I would work on those.
I am also interested in gaining some hardware experience and seeing what sort of home automation things could be done with hardware like arduinos and raspberry pi. Associated with this, I am interested in exploring the options for natural language control through the inclusion of speech recognition and perhaps neural networks. The goal of this would not be AI, but to be a trainable system which might handle home control work.
[0] https://github.com/privong/magellan/
Anyone interested in pairing on that?
I would get a stack of basic and undergrad textbooks, maybe a copy of Mathematica, maybe also a tutor, and just start at the beginning to see how far I could get.
I've been wireframing for a while and have yet to reach a solution I really like.
1. an e-mail server with a web server that can be deployed on a cheap device (raspberry pi) to offer pgp mail to non-technical persons
2. a docker orchestration system (docker is supposedly working on one already, but where's the fun in waiting)
3. I have this idea for a "Game of Life"-like game where instead of life being dependent on adjacent life, life would be dependent on energy equally distributed over the grid, and life could store and expend energy to execute operations like replication and movement.