The majority of information out there, including tutorials and blog articles about others' successful deployments, comes in the form of very high-level overviews. Everything I've found is an introduction to getting a basic docker instance running. There is very little useful information out there as to how to run a proper multi-host cluster.
There is core Docker. Tack on docker-machine, docker-compose, Swarm, and the dozens of 3rd-party cluster management abstractions such as Rancher - and the intensity of the headache never stops growing.
It sounds wonderful, but there is so much to learn to be able to tackle a full production stack. It's one thing to successfully launch a working cluster after hours of manual tinkering. It's a separate beast altogether to fully automate setting up a new cluster by issuing a single command, taking into account consistent configuration of: secure networking, persistent volumes with backups, deployment of container configuration and VCS codebases (ex: nginx vhosts and your code itself), etc.
My goal is to set up an entire project in such a way that there is a single suite of automation that can deploy all environments: development VM, staging, and production.
Start slow, and work your way up. I started with docker early, so I can see how its ecosystem can seem intimidating now, with all the different "tools" and "workflows" to know about. So my recommendation would be to go bottom up. Start with just plain old docker - learn what containers are, what makes them work, then see how to manage containers in a single host with compose. Then move on to clustering with swarm, and then move on to other cluster-mgmnt projects like k8s. Try to make your containers more space-efficient by basing your images on Alpine. Make your host more robust by using CoreOS/Rancher, and so on. You won't need all the steps (or even in the order) I've listed here. But once you've started with a base, you'll have some idea as to where you want to proceed next.
If you need any help, you are free to ping me with any queries at the email in my profile. My authority on the subject: having written a book [1] and a Udemy course [2]
My advice for container orchestration: pick Kubernetes and don't look back (or at least give it a solid try). It falls at the right layer of abstraction and gets so much right. You get automatic container scaling (by CPU usage for now), container composability, service discovery, configuration and (kind of) secret management, portability, it's open source, and really a whole lot more. It's spearheaded by Google, RedHat, CoreOS, and other organizations, so it's fairly safe to say that it won't completely disappear a la Google reader if it's abandoned.
I recently migrated a whole microservice stack of a half dozen services to OpenID connect and Kubernetes in two weeks. This is with about a year of casual familiarity and playing with Kubernetes, and the same migration to OpenID connect would have easily taken me 5 or 6 weeks to do in Amazon ECS, which is what we currently use in production.
Not to mention I can run a cluster on my three computers at home at no extra charge beyond electricity and play around for free. (See, dear, I'm not a hoarder!)
Setting up a cluster is even simpler now with tools like kops and kubeadm. Or just get one provisioned for you by Google or Red Hat with GKE or OpenShift.
I would highly recommend at the very least making it one of the solutions you try.
As a self-taught programmer without much in the way of "official" pro experience (I have another job and program just to increase capabilities in that role), Docker was a revelation to me. I've programmed lots of tools at home, but getting anywhere in production is a nightmare of trying to wrangle managers and sysadmins into helping me translate my vision into a full-blown, deployed app within the business's stack. This year was the first time I was able to throw something together, Dockerize it, and have it deployed by a sysadmin with one or two minor code changes to work through our proxies. There are a lot of things that make me nervous about containers (persistence for example), but that was a game-changing experience for me and opened a whole new window of possibility.
This is also one of my goals for 2017. I've been using Docker on my project at work for about 8 months, but only in development and CI. I really want to start a push to begin testing usage in production, but have no idea where to begin. It's hard to find information that strings everything together. I feel comfortable with using it in development, but production seems to be an entire different beast.
Are you looking to automate infrastructure-as-code in there, as well? I've lost many a night to trying to get Rancher to play nice with Terraform, especially in high-availability mode. Luckily, it appears that the process has been vastly simplified in recent rancher-manager releases.
Oh great, you've just added Terraform[1] to my list of possible tie-in softwares. Thanks for that, you monster. /s
Yes, at least for development, setting up the entire environment must be a one-command execution. Every new developer to a team will obviously need to progressively learn the entire stack, but they should be up and running after a single VCS checkout and installation command.
I expect staging and production to be a perfect replica of the same environment developers use. As to how realistic it is to "launch the entire production cluster with a single command", with remote server provisioning, IP allocations, multiple hosts for various load-balanced pools, etc... I'll have to see when that time comes.
Terraform is designed for something close to one-command execution. You're going to have to swap in variables (e.g. AWS access keys for a particular account, domain names, IP addresses, etc.), but Terraform is designed for that. I would advise looking into Terraform Modules[0], which encapsulate this kind of work nicely.
You might take a look at troposphere[1] too. I've used both extensively and each definitely has it's strengths. In some cases troposphere is a better fit.
Are there good ways to use Terraform internally / without online providers like AWS? I've just started using it with DigitalOcean, but I'd like to use it at home to do IAC with my whole setup. As far as I can tell the only good route for this is to throw OpenStack on bare metal, but I'm a newbie so I wonder if there's a better way.
You can write your own providers for Terraform[0] and bake whatever you want into its HCL syntax. In your case, this might not have significant returns over bootstrapping with Ansible/Chef/Puppet -- it all depends on what you want to do.
Absolutely same, I really want to get into it. I already tried to do so, but for some reason I was out of luck finding good resources for learning.
Can someone recommend some great resources for beginners?
TBH, would like a free resource. :D
Beside that I want to get around HashiCorp tools, especially Vault for storing and Consul for service discovery.
I'm going to learn it as well, a fair few jobs seems to note Docker as a requirement, or suggestion. I've never used containers before, so it should be fun.
A bit meta, and will probably get lost, but I would strongly encourage anyone answering this question to also include: "and this is how I plan to do it"
Firstly, because if you don't have some kind of plan, there's no hope, so try and work out what that is now; second, you'll give people who already know that skill a way to advise you.
I want to be more socially active in 2017. I graduated in 2013 , got a dev job and since then been living in a virtual world w/o any interaction whatsoever with people outside of professional environment.
In 2017, I want to break this trance, get to know the real world and probably get a girlfriend. :)
One of the better ways to do this is to to take the lead. Be a leader, not a follower. That can be interpreted multiple ways: organizing events, inviting people to things, asking what you would like, not what you "want", even taking dance lessons (something like Salsa), not caring about the outcome so much...
Some wisdom from a book from the Ask HN Books thread [1]
> - choose carefully what you give a f*ck about, but when you do, do it right
> - there will always be problems, deal with them and move on, it's your own responsibility.
> - the constant pursuit of a positive experience is in itself a negative experience, acceptance of a negative experience is a positive experience
No need to be a leader. Just to be comfortable with yourself, being able to enjoy things that can be enjoyed socially is enough to attract other people. Salsa lessons are good advice. Also a wine tasting course! There you can follow others and be happy too.
I spend thousands of hours learning Japanese. If you not live in Japan, it is a totally waste of time. My wife is from Japan, why I learned the language. But because of still living in Germany, I regret learning it. I could learn so many other things.
I'd like to learn Japanese. I'm hoping to travel there in June after I graduate from college, and I figure it would help if I could talk to people (or try, at least).
I'd also like to get better at Rust. I've written a few small projects in it at hackathons, but I've yet to get to the point where I'm comfortable writing in it. I'd like to get close to that.
I'm taking a class prior to graduation in abstract algebra, which I'm excited for. I'm hoping to be able to continue to learn in this after graduating, I've thought about continuing to take math classes at a college by Seattle after I start working.
I'm hoping to lean more about machine learning and how it can be applied to problems, a project that I'm hoping to do in advancement of this is to learn to predict cloud cover in some future interval based on the history of some things (maybe pressure and current cloud cover?)
Couple of quick pointers wrt Japanese. First, human languages take a long time to get good at. If we think that children learn faster than adults (which I think is not actually true, but it's a widely held belief), then it will take you 5 years to talk like a 5 year old, 10 years to talk like a 10 year old and 15-20 years to talk like an adult -- minimum. If you study very effectively, I think you can double this speed, but no more than that. Adult level proficiency is 15-20,000 word families. Ignore anything that tells you that you can be proficient with 2,000 words of vocabulary (even a 4 year old has more than that!)
Specific advice about Japanese: forget polite form and learn plain form from the beginning. If you are in dire need of sounding polite, just put "desu" at the end of every sentence. It will be grammatically incorrect, but nobody will fault you for it (it's what children often do). The mapping from plain form to polite form makes total sense. The opposite is not true and complex sentences require that you master plain form, so this will reduce your effort considerably.
Also, learn to read. This is especially true if you are coming to Japan. Hiragana and katakana will take you a few weeks. Try to learn at least 100-200 of the most common kanji as well. This will take you only a month or so and it will make your life dramatically easier.
Learn full sentences and ignore grammar for the most part. I got to reasonable conversational level simply by memorising the example sentences in Tae Kim's grammar guide: http://www.guidetojapanese.org/learn/grammar. Use spaced repetition to help speed it up.
Get the JLPT N5 and N4 vocabulary lists and memorise them. Even N3 is useful. These are words that map pretty much directly with English without a lot of nuance, so memorising them is efficient. Otherwise learn vocabulary in context by reading. I recommend manga because it will give you conversational Japanese. There is no description in comic books -- only conversation. They are perfect.
Finally, get a phrase book and memorise some set phrases -- just to help you a long. Keep in mind, though, that a lot of phrases are regional and wherever you are going, they might say things a bit differently. Generally speaking you should be fine if you stick with common phrases, though.
> If we think that children learn faster than adults (which I think is not actually true, but it's a widely held belief),
Anecdotally, I saw my two children learn a foreign language in exactly the same place and over the same time as me. They learnt it to fluency in the same time I could barely communicate.
Actually google 'scholarly articles on how children learn languages'. It's probably not just anecdotal.
I'm not suggesting that adults will always learn faster than children. You will no doubt notice that you did not spend your time the same way that your children did. Did you spend 24 hours a day thinking and struggling in that foreign language? There is a big difference to being exposed to language and concentrating on it. Restricting your self to thinking only the thoughts that your language enables you to think is difficult for an adult (well, impossible really).
I'm not entirely unaware of the literature in the area. I spent 5 years of my life teaching English as a foreign language. A large percentage of that time was spent doing research in language acquisition. As far as I am aware, ever since Chomsky the general consensus has been that there is no different mechanism for language acquisition in children than in adults. There are still some researchers who disagree, but that happens in every field and is healthy.
But, you aren't going to beat a child in learning a language unless you do some very specific things. That's because they spend 24 hours a day, 7 days a week learning language. Even when they get to school, their school work is primarily surrounding language activities until they get to be about 10 or so.
An adult's secret weapon is the ability to read. If you use that to direct your learning, then you can go quite quickly. Like I said, though, getting to an adult level of proficiency in less than 10 years is pretty difficult, but it's not impossible by any stretch of the imagination. The same level proficiency for a 10 year old child is very, very unusual.
For things like accent and getting tones correct all the time, that's a bit of a different story. Only about 2% of adult learners achieve native level proficiency in that kind of thing. But it's not something that will hold you back from normal communication. Event then, I'm aware of some specific language training you can do to help, but most people are not really interested in going that far.
Controlling for time availability and motivation seems both crucial to getting relevant results and damn near impossible to pull off. I'd be happy to CMV but it's not the kind of thing I'm willing to spend a day doing a deep-dive over.
1 thing that helps a lot is immersion. I couldn't justify learning a language till I lived in the country where it was spoken. I am doing this in japan now (moved here recently)
> Otherwise learn vocabulary in context by reading.
I really enjoyed -- and benefited from -- "The Japanese Reader Collection". There's about 5 thin volumes available from Amazon. They're basically Japanese children's stories, written in Kanji with Furigana and lots of annotations. Every word and sentence is explained and translated to English.
I started off by simply reading the Furigana at normal reading speed, without caring about reading comprehension. This greatly helped with my kana reading. It especially helped me learn to cope with the lack of spaces in Japanese. Then I started to focus on the meaning. And now that I've memorized most the JLPT Level 5 Kanji, I'm starting to focus on recognizing them in the context of these stories.
I agree that plain form is important. Also your thinking on how children is learning. But, grammar is important. Memorising phrases only get me to be able to use phrases in a very specific situation. Once I am able to dissect a sentence and analyse how it's constructed, I am able to make similar form of sentences for a different purpose.
Hmm... I probably didn't explain this very well. You are correct that memorising phrases is not enough. That gets you a kind of grammar dictionary in your head, where you have a single example of that grammar. It will allow you to recognise the grammar, but not use it fluently.
After that, you need to be exposed to many, many different examples of that grammar so that you can understand the context in which it's used and the variety of shapes that it takes. The easiest way to do that is to read (and when I was "studying" Japanese I would read 2-3 hours a day).
In my experience, you need this exposure anyway, because memorising grammar rules allows you to construct sentences, but it does not allow you to understand how to use it properly in context. You have that awkward situation where you know you've said something correctly, but people are staring at you in confusion anyway -- because nobody says it that way.
I'm certainly not against learning grammar, if you enjoy it, but my experience has been that memorising a single exemplar and exposing yourself to countless examples (that you can understand) will bring you to fluency faster. There are an infinite number of ways to make grammatically correct sentences, but the idiomatically correct sentences is a very small subset of that (and actually disjoint since quite a lot of idiomatically correct language is not grammatically correct). Learning by example allows you to reduce the problem space dramatically.
Having said that, I know a lot of people really enjoy the process of learning languages by using grammar rules. If it works for you, then that's obviously the way to go!
You wouldn't happen to live in Atlanta, would you? (I know that's a long shot...)
Outside of work I program in Rust almost exclusively, and would love to hack on something with others.
I studied Japanese in high school, and I taught English in Hokkaido for a year, but I've since gotten rusty with my Japanese. I would love a study/accountability partner to pick it back up again.
4chan's /int/ has a daily thread with many ressources for learning Japanese. The basic recommendation is to get Anki and the Core 6k deck and the deck for the Dictionary of Japanese grammar. Grind those decks until you can read simple texts, then read as much as you can. The NHK for example provides news in simple Japanese http://www3.nhk.or.jp/news/easy/.
The Yamasa school there is a great little find. The prices are very reasonable and they do everything they can to make it foreigner friendly, ie providing housing with thick walls, simple leases and things.
Would recommend SILAC program which is mostly talking, even though I did the more formal class route, SILAC is probably more effective I think after learning more about how learning works
I live in Tokyo. Will treat you to beer and yakitori if you make it.
Good luck with Japanese. People often describe it as one of the hardest languages in the world, and you can understand why: three written systems and grammar and vocabulary that changes based on whom you're speaking to and what it's about. But once you learn the rules (and there are many), there are few exceptions compared to English. So it's a lot of work on the front-end. Don't let that discourage you.
Fluent Forever [0] and its corresponding book is also a great resource. Tons of overlap with Benny's stuff with the main addition of an upfront study of the phonetics of a language to get that barrier to learning out of the way.
wrt Japanese, get comfortable with the difference between transitive and intransitive verbs. Verbs in English are often both (ambitransitive) and that makes you (or maybe it's just me) unaware of the difference. It took me more time than I care to specify to sort that out in my head!
And be confident! Japanese people are generally supportive and will appreciate your effort to use the language, no matter how successful it is.
I want to write a real, hand-holding example for using GenStage and Elixir for a real tangible feature.
The official documentation sucks and does nothing to illustrate how to use it in a real setting. I've tried to understand what it does and how it works about once a month for the past four months but I still don't get it.
Hopefully I can understand it soon, and further cement my understanding by writing a real example for people to learn from. It sounds very powerful and useful but damned if I know how to use it lol.
Confidence - never thought it would be an issue when you're leading your own company. I quit a great job on the east coast in 2012, went to grad school and moved to Silicon Valley after graduation (2014) to work on my startup. I've been learning and building constantly for the past 4 years. I would rather my work speak for me, so I don't draw any attention to what I'm doing or to myself until I have great results to report. I don't have a co-founder because the people I would ask are not financially independent enough to take the risk without a salary. I'd rather make some money and hire them with as much equity as they can handle.
My first project stalled because of poor architectural decisions that overlapped with not-yet-profitable product-market fit (and too much networking instead of product work) and a baby. I learned that lesson and turned into a hermit to rewrite it completely - the market is there, but not immediately lucrative. I'm also writing something that makes money first. I'm hammering day and night with nothing else in my life but my family and the product. My second project is written in GO, wonderfully cheap to run, and about to be ready for launch. Not sure how to turn on that swagger button yet.
Selling to customers is one thing, but how/when do I start selling to investors and employees when few people know me in SV because I've been hammering instead of networking for almost 2 years straight.
I was in the mindset of letting my work speak for me. Then I quickly learned why technologically-inferior products can often get more sales than other superior products in my field(b2b).
Without accurate product presentation or inspiring sales effort, I can watch companies with clueless devs outbid my product with their all-powerful sales people.
My tip for selling a product you are perhaps too close to is to explain it to ordinary people.
I mean any random person, your Dad or Grandmother. Work out in layman's terms what problems your products solves, and how it is going to be a business.
Investors and even customers may not be at all interested in how GO is very quick at garbage collection...They want to know how your product will make them richer. Practice on laymen, practice a lot
Lol - welcome to the club! (the confidence) find yourself a good business coach. You may burn through a few but that's all part of it.
I can relate to your comments, I was there about 18 months ago. You would be surprised just how many people talk about confidence (or lack thereof). Also, look for a good mentoring group. Find people that are on the same path (family / business / financial).
I'm in a similar position. We should create a group for the subset of solo founders who are inclined toward product and not sales. It is a tough position to be in for sure (though I imagine the inverse has its own problems).
I'm a solo founder (of a slow growing 'lifestyle' business, not a fast growing startup) who is inclined towards product. The trick is to build a product that requires minimal sales effort.
My app costs 40€, and is geared towards individual users. You don't need a sales team to sell a 40€ app -- just a few emails to announce your product on the right mailing list, and a few cold emails to key influencers.
And a lot of patience, because unless you are very lucky, noone will buy version 1.0.
Good advice Jakob, thanks. Yeah my app is essentially a video language learning application, think very broadly of it as Youtube crossed with Duolingo. So it definitely isn't the kind of app that requires a traditional sales team. It's going to be all about influencers and language learning forums in the early days and building from there.
I have that planned for a long time. I've been making progress in recursive thinking and thus compilation and interpretation last year (thanks to a prolog book). I may attempt the LLVM thing in 2017. This or a bootstrapped forth, x86 64 or maybe AARCH64.
I'm in that path, but instead of python I want a ML/Python/Relational language.
I know alot now, yet I'm struggling in some areas. For example, how effective surface a FFI for the language 9I'm with F# so is kind of easy, but how do that in swift/rust where reflection/dynamic calls are not easy?)
The more you practice, the more you can, the more you want to, the more you enjoy it, the less it tires you.”
― Robert A. Heinlein, The Cat Who Walks Through Walls
> Digital Electronics using [1] Operating Systems using ...
also, in case you are not aware of it, there is always the nand2tetris [http://www.nand2tetris.org/] thingy (currently running on coursera btw). the book is also pretty good imho.
thanks signa11 for the nand2tetris reminder. I have worked through that book and it is really awesome. Worth the time and effort for anyone inclined. I had posted my review on Amazon as well. [1]
I think I should enroll for the Coursera thingy and have at least 1 certificate in my kitty ;-)
> I have worked through that book and it is really awesome. Worth the time and effort for anyone inclined.
very cool :)
in case you want something more, i have _very_ fond memories of zvi-kohavi's book (switching and finite automata theory) as well. you might find useful/instructive.
Thanks for posting the link. I just signed up for the course. Always wanted to learn how simple logic gates end up become all purpose CPU's. I've always thought that someday we'll have same concepts in a cell which becomes a full turing machine and anyone can grow it.
Thanks, this on a first skim, looks a very detailed course. And while we are at it, there is also this post on HN on the front page, which contains more resources for learning about OS. https://news.ycombinator.com/item?id=13258063
How to spend more time with my family, friends, work out, learn how to cook and less spend time plying with a new framework without a real business idea behind it.
Amen! Plus I want to finish all the books I bought this year.
About programming/work - I want to learn a little bit of Haskell and want to change my company, I also should make sure the code I write from now on should be Test Driven to some extend
How to effectively market my consulting skills. I've been a web developer for over a decade now and I'm still not confident in my ability to bring in consistent work. The work comes, but I'd like to have more potential clients knocking.
From what I can tell, the best way to achieve that is by consistently offering to help others with my skills. So I'm making it a point in the coming year to make blogging a part of my work routine.
Are any of you facing the same dilemma? I'd love to hear your insights!
I have a hard time breaking into the consulting/freelancing world. I really like the idea of working part-time during off hours for extra cash, but it's proven to be quite difficult for me.
I think part of it is that I'm not loud enough, and I think it comes from being an introvert. I'm confident, I'm not shy, and I know I'm skilled enough to work on lots of stuff, but when it comes to marketing myself, networking, small talk with strangers, or anything else like that, I just have the hardest time.
It also doesn't help that a lot of opportunities to meet potential clients are found in non-professional settings, and those events are usually centered around the consumption of alcohol in the presence of loud music. I cannot stand loud music and I don't drink alcohol, so the difficulties for me just seem insurmountable.
I have, but with zero success. I've read awful things about Toptal and PeoplePerHour, so I didn't really go for them. Upwork seems to be filled with developers from various parts of Asia where the low cost of living allows them to bid way lower than what I would charge. The quality of work also seems pretty bad, from what I can tell (one-sentence descriptions, bad grammar, crazy low budgets, etc.).
I've seen advice like, "If you charge high instead of trying to compete with low bidders, you'll be taken seriously," but then there's the issue of having 0 clients/reviews/ratings, which make it hard to command a high rate.
I did have one client on Codementor.io! He didn't give me a review, though, even though we had three sessions and he seemed to be super happy with my help :/
What about packaging what you know and putting together an eBook or online course? A lot of freelancers and consultants are turning to that to make extra money and to build their reputation. Here's an example: https://courses.gorails.com/
Here are two pieces of advice from someone who works in sales and marketing:
1. If you're going to blog (which I think is a good idea) make sure you have an opinion that is strongly held and/or differs from conventional opinion. If you only write vanilla stuff, you'll only attract vanilla prospects, which usually end up being a poor fit or boring to work with/for.
2. Take every opportunity to teach what you know. This can be through blogging, commenting on other blog/forums, podcasting, screen recordings...whatever it takes to teach something for free. This establishes you as an expert, provides no-risk value to prospects and has no barrier to entry, so it's a great first step to building a relationship with possible customers.
One of my 2017 goals is to help others market themselves better. Im also a consultant (code and marketing). Feel free to get in touch if youd like some help from me. Email in profile.
Diving deeper into Rust. It strikes me how this language is exactly what I want in the future. From building Webapps/services (good libs/frameworks will arise) to codify algorithms as efficient as possible, and so on.
I have some libraries that I tend to rewrite for every new language I learn, but once I wrote something in Rust, its written once and for all, highly efficient and considerably safe, and I can use it from all other languages (node, elixir, ruby, ...).
And I have high hopes for webassembly to replace the brittle and overcomplicated frontend stuff in the next years, Rust should be the ideal candidate to write enterprisey stuff which must not fail.
I want to learn how to even start a side-project. I've been out of university since 2012 and have done basically nothing in my free time CS-related. Every time I start to even think about doing something, that "why are you working while on your free time" feeling comes up and I immediately do something else. Not sure if it means I really don't love programming and Computer Science after all (entirely possible) or if it means I'm just lazy. My goal is to find out one way or another.
Do you want to know the secret to starting projects for yourself? Don't buy or download any software just write it yourself.
I've got a huge movie collection on DVD. Rather then use Plex I made my own website to do the same thing. I have a lot of PDFs of books I want to read, made similar software to allow me to keep my position in my browser
There are thousands of examples where I've done this and it's very fun. It improves your abilities and toolings and in general makes your life on the computer much easier.
You don't have to be trendy just be useful to yourself and people will like it.
I can't overstate what a good advice this is. It's counterintuitive, but if you are just starting out, reinventing the wheel is the best practice you can get!
No it isn't. I did the same when I was starting out. Rather, we all do, when we are starting to learn anything new, by following tutorials, where you basically reimplement what the author of the tutorial has.
This is one reason I installed ReactOS. They make their own framework for the OS, and they haven't made too many apps, so my idea is to add in the things I need for myself.
If you see them as something that will make you a "skilled programmer", or something that will be a nice addition to your resume, you probably won't get anywhere. Well, maybe you will become a "skilled programmer" and you may be able to add a line to your resume, but does that really matter? You're sacrificing your precious time which you could be spending to do something more meaningful, like spend time with family and friends, read books, experience new things in life. And in that case I would rather just spend time doing something more meaningful instead of trying to force yourself to find some side project to work on.
Most successful side projects come from people wanting to express themselves. If you don't have an idea that you want to build at the moment, don't force yourself, just enjoy life and only jump on it when you stumble upon an idea you really want to work on so much that you would even sacrifice your sleep time.
We had gone for a group outing, had million photos, less than 10 people in each photo, so didn't make sense to give the same photos to everyone, so wrote a basic app which would let me tag people and created eachone's folder and copied photo in it.
Starting a side project shouldn't be done by the goal of starting a side project, look around you, is there a manual process which you wish there would be a better way to do? sorting photos was one such way and I wrote an app for it. I did the same for a todo list manager, didn't have internet or any good todo list manager, so I wrote one and learned the Go language and the Vue.JS framework
This. Aside from a hackathon or two, I have "completed" exactly one side project since graduating in 2013. There were numerous times I started projects and quickly gave them up, and it was simply because my goal was to have a side project, which is not really a goal at all.
This year, my girlfriend and I were using Google Sheets to track our expenses and compete to see who could spend less money. We eventually decided it'd be a way better experience if we had a dedicated app for it, so I worked relentlessly to build one and polish it up until I was pretty proud of it. I "released" it to a couple of online communities where I thought people might be interested, and I gained exactly 1 active user who I don't know in real life.
It's all good, though, because my girlfriend and I use it every day, so that's all that matters to me :D
But yeah, it can be difficult to "scratch an itch" if you feel that nothing needs scratching. If that's the case, I wouldn't really worry about it. If you don't need to build anything, then don't spend time building anything. It's nothing to feel bad about.
I have made one side project ever since 2013 (I am working from 2011 and made few failed project, but learnt a lot). In 2013, we had exactly same problem - tracking expenses and do personal budgeting. My wife was using spreadsheets and I created a software (using Python and Flask) and released a webapp. Later we realized that an app would be much more useful, so rewrote the backend (Java EE) and front-end(Objective C), but never released it. We have however 3 years worth of our own data (never did analysis or charts). Lately, we feel that since our app never made to App Store, it crashes every 7 days and I need to reinstall/use XCode to do this work (very painful). I plan to rewrite again in Scala (my latest favorite) and use React-Native to build the app. This time I would like to publish it
The thing about excitement is that it dies off. What motivated you a few days/weeks ago now is just not worth the effort or time that you'd rather invest doing something more worthwhile.
I've recently started to complete side projects. I also graduated in 2012 so I was in a similar position a few months ago. What clicked for me was that I realized I didn't have to do anything heroic. At first I'd start a project and feel like I had to complete it in a couple of weeks, but then you're trying to spend all your free time on it and you tend to burn out quickly that way. Instead now I start a project, spend a few hours on it, and then just try to spend a little bit of time on it every day. Even just 20 minutes can make a huge difference. The key is to just do a little bit, steadily, over a long period of time. It really adds up. And doing that keeps you engaged with the project and wanting to spend time on it.
I've yet to graduate, but I find myself in the same position. I've got other non-CS related hobbies that I enjoy and so I don't really end up making any good side projects.
CS seems to have this feel around it where it has to be both your job and your passion. Recruiters want to see that you spend all your time outside of work/school programming, which makes it difficult for people like us who have other hobbies they like too. I wonder if it will ever change?
I don't know how's the market where you live, but are you sure the "programming outside work" is really a crucial component, or that you're not just sending your CV to "hip" startups? Because the market around here isn't that hot, yet it's not hard at all to find companies who don't really care about your personal life, they just want to know about your academic and professional lives.
i sometimes wonder whether it's worth it. One of my passions is Cs and i enjoy it very much. But It's not the only one and i fear that one day i wake up burned out, wondering how i have wasted my time learning technologies that have become totally useless. If you have a passion for CS, CS will likely consume youre time and dominate your life. I don't want this, i want to learn and have fun, but i think it's comparable to a drug that's fun a first but if you don't watch out dominates your life. Just image if you're in your 50s...does this really matter? Is starting a family a better (but harder!) idea? is work/learning CS really that rewarding? I don't know. I just really hope that i make the right decision and don't waste very valuable time.
I've gotten a lot of side projects done in my spare time. The trick is to make apps/programs for what you need. Not something that someone else wants it.
The struggle is real and I have been in the same position... Procrastinating and just being lazy or dropping online courses in the middle... I just found out about a site liveyourlegend.com and I will try to use the tools they provide to find out about my true passion... I knew that I wanted to be a computer engineer since I was 15... But now I feel very behind in matter of experience and knowledge... Maybe it has to do something with these feelings also it could be a good time to do some internal work and try to know ourselves more....
I'd like to learn how to sell a SaaS product[1] to businesses. I'd also like to explore content strategy and marketing. As a software developer joining a new 2-person startup, this is uncharted territory for me. Looking forward to the experience.
There's several good blogs out there but I really suggest reading Traction [0]. It's well organized and very practical/easy to put into action. I've bought copies for multiple people (including my wife who recently joined a startup doing marketing).
Also you used the word "sell". Don't forget that sales is different than marketing. If you plan on doing real sales the book Predictable Revenue is great (though designed for slightly larger teams than just 2).
Good luck! And don't forget, NPS tools are good for brick and mortar businesses too.
Traction book seems interesting and is highly recommended by a lot of people. I plan to buy a copy and read it over the holidays.
I've got a few broad ideas for marketing - direct "cold-connecting" via LinkedIn, Angel; long term content strategies and Facebook/Bing ads.
Approaching brick and mortar businesses seems challening, especially since I don't have a background in sales. I have a feeling that online startups might be more approachable to begin with.
Adding Predictable Revenue to my next year's reading list. Thanks for the suggestion.
Thanks for the suggestion. I am also an admirer of Brian's writings. Other resources that I have started referring to are - frequenting Inbound.org and GrowthHackers.
Looks neat. It's also worth you looking at CES (Customer Experience Score). CES feeds into NPS... eg NPS is a result of lots of CES's, so to improve NPS you actually need to look at the core issue(s) that may be impacting it. You might be able to build CES into your offering as well.
Great idea. Adding it to our roadmap. The idea is that we will initially start off with in-app NPS, then explore other channels like email campaigns, SMS, Android and iOS SDKs.
Once we have the entire workflow for NPS worked out, we can look at customizable surveys and other survey types.
That sounds good. I think your challenge will be that organisations who offer online resources (client portals etc) or mobile apps probably also have CRMs, so could replicate your product pretty easily. That said, if you can feed your data straight into the 2 leading CRMs globally (salesforce and dynamics 365) you might be able to leverage them to your advantage.
Yes, integrations are the key. We are currently working on a Zapier integration since that is the easiest way to connect with multiple 3rd party APIs. Later on, we will add support for Salesforce and other CRMs.
Starting a company involves so much marketing. SEO, SEM, etc. In the SEO domain, you need to pay a lot of attention to blogs and sites like Moz, rank tracking with services like getstat, make sure you aren't doing anything blackhat.
1. Rust. As a DevOps engineer with a lot of experience and interest developing and operating distributed databases, I have so many ideas and Rust is perfect for them.
2. Everything about building and using FPGAs to their potential.
3. machine learning / deep neural networks. I feel we are getting to a point where they are becoming more practical for a business to invest in.
4. How to survive parenthood, with #3 due in May, my son is 3 and my daughter is 2. I've been making it up as I go, but wow is it a lot of work!
I'm going with rust as well as a follow on from currently getting myself reacquainted with lower level programing (c), building desktop apps and flex/bison. I "knew" c++ >10 years bet went to more productive environments to build apps. What I'm discovering now is that this productive is more from experience than from using higher level languages.
GIS. I've been using PostGIS a ton at work in the past year, and I've read _PostGIS In Action_[1], but I've really just scratched the surface. I want to play around with making my own projections.
Desktop GUI Gis programs like QGIS are pretty fun and there are tons of resources for learning the basics. You can download elevation raster data and highway vector data for the area around your city or somewhere more topographically interesting and start making maps or just some armchair exploring. Topography and hillshade data are gorgeous. And it's pretty easy to play around with projections, especially changing parameters on standard ones like Lambert.
Check out d3.js - building a GIS app myself on top of d3 and it's really powerful and runs in the browser. Will have to do the GIS calcs server side and just use d3 to render but that plays really well with PostGIS...
I want to learn and play with LoRa. It's a 'IoT' technology that allows you to communicate over long distances using amateur (unlicensed) radio bands. Some of my friends have achieved distances of over 40km, and I'm curious to see what I can do with it.
So far I've been able to get a ping between two modules over a 10m range. Next up I'd like to transmit some useful data over longer distances (temperature for example), and then move on to devices that provide useful data (eg when a train passes a certain point to see if it's on time).
I'm sure it's easy, however right now the range part is where the blockage is: I get a SNR of -11 and RSSI of -107.. which results in just a few meters of transmission.
Using a Draguino Lora Shield + Hat combination, with the antenna which was in the box. Dunno what I'm doing wrong - what hardware and library did you use?
I'm coming 20-30 years late to the "biology is the future" mindset.
In my case, personal health has left me no choice.
Some poor medical advice and treatment, combined with my adversity to the whole topic -- yes, strong squeamishness combined with fear/observation that thinking about adverse events seemed (seems!) to instantiate them. That all has left me with a substantial health burden.
Meanwhile, in my experience the current U.S. health care system seems to be -- technological "miracles" aside -- making getting effective treatment ever more difficult.
So... As with everything else, it seems, you can't rely on expert consult -- even when you can afford it -- but rather have to learn and do -- or at lease prescribe and manage -- everything yourself.
So... biology. In other words, I need to belatedly read up on the owners manual. And find some hacks that help me.
As an aside, we're about to the point of molecular programming. So, maybe this will coincide with the current leading edge in technology, anyway.
How long is your daily commute? Perhaps you could change your routine a bit, and consider going to work on a bicycle. It could reduce the need to hit the gym every weekend, and seeing new sights and sounds on the way to work may open you up to new hobbies. :)
Sounds like exposure vs actually learning something deeply.
However, both activities are very valuable. Without looking at many things, how else can we know what is worth spending time to learn or do well? I currently feel that alternating between the two is good for a while. Perhaps later in life I will know enough to confidently work on one thing for many years :)
I've also found the tree trunk of knowledge model to be very powerful (I believe I heard of it on waitbutwhy.com). The best learning and understanding comes when we build it up in a tree like fashion, where each leaf or branch is supported by a stronger, more fundamental conceptual branch. At the core is the trunk & roots, which are the deep, underlying principles supporting the entire tree of concepts/knowledge/ideas.
Without a strong trunk to build off of, concepts and bits of knowledge float alone, ungrounded, and can wither or rot more easily.
I sound a bit more negative than I really am. I think both kinds of learnings (deep and broad) are useful, you just need to make sure you adjust your brain and technique of actually assimilating things to the type of learning you are doing.
I've learned quite a few languages/libraries/frameworks/methodologies this past year and while I don't feel like I'm an expert (or even reasonably well versed) in either of these, this broad exposure to vastly different things has stretched my brain in positive ways.
Docker, rkt, LCX/LDX, and Kubernetes. I use some of this stuff already but want to see whether I can set up a Heroku-like multi host cluster that will be more stable for running production projects than my current setup of running things on "bare" EC2 instances.
Swift and/or React Native. Mobile apps are good.
How to use some basic ML in practice. TensorFlow based NNs would be good.
How to use the ShopBot at my local hacker space. Also how to use the laser cutter to make cooler shit than I already do.
How to sew. I want to make some one-off items but really don't know much about sewing beyond the real basics.
How to use a bullwhip India Jones-style.
Surfing.
Bonus: welding, how to change brakes on a car, how to rebuild a carburetor, how to make kombucha, how to keep bees.
This is really easy. In fact it's the easiest non-trivial repair there is on a car, because unlike other parts it's actually designed do be replaced as a wear part.
You'll need a jack, jack stands (pair), and a set of good socket wrenches (make sure you get 3/8 and 1/2 size - you'll need the larger sockets). A breaker bar and torque wrench are a nice bonus. You can get all of that at harbor freight for less than $100 (they do ship if you don't have one nearby). And considering the parts for a brake change cost around $100, but a shop charges closer to $600 it's a no-brainer financially.
I learned by checking out a chiltons repair manual from my local library and following the instructions. That works very well, and you can supplement by watching some youtube videos (not an option when I first started). (I would not do just youtube - you never know if they are skipping a step.)
Disk and drum brakes are all very similar within their type, so it hardly matters which model year chiltons book you get.
Like you, I'd also like to learn how to weld :) but the cost of the machine is too high to justify.
On top of this if you buy break pads from Autozone ($25-40) they come with a life time warranty which includes wear. I have bought 1 pair of pads for every car I've owned and when I need to replace them I just take the old ones off, put them in the box and bring them to Autozone. They give me a brand new set of pads for free!!!
After my initial investment my break changes take ~1-1.5 hours of time (including the trip to Autozone) and cost no money.
Ask grandma! My mom taught me, but it was an even more common skill with the older generations. Or I guess there's always YouTube.
Does your maker space have a 4th axis for the laser? You can buy clear pint glasses and etch designs onto them. Combined with a custom etched coaster it makes an easy, inexpensive gift.
Elixir/Phoenix -> I'm starting a greenfield project that I'll get to work on commercially that will be using Elixir/Phoenix for the API backend, so that will be a thrill there
Woodworking -> I'm going to have more free time this year so I want to get back into learning woodworking and actually building and finishing pieces. My first goal is to re-build my workbench and make it smaller so it takes up less room in the garage. After that, I have an idea on a stand that will go next to my couch.
Marketing -> I've created a software product that I'm selling and I want to figure out how to market better so that I can actually sell my product
My goal is to learn enough tech to build an end to end web based application. Planning to learn python, then html/css, MySQL and move onto learning deployment with AWS.... let's see how it goes !
There's many options for Python but check out CherryPy. If you can write a class, and a few methods that return text (or HTML) you can write a full blown website with CherryPy. It maps methods to URLs.
Mako is used by Reddit. A few months back I was hired to code a back-end API and I chose Python and CherryPy for the stack, never done as much web dev as I have since. Got a fully working app. Can't recommend much for MySQL, except either SQLAlchemy or PonyORM.
You can make a simple website / web service in CherryPy, and yes RESTful services can be made as well. I say start with basics. Even if you don't use CherryPy in the end, you can start testing it right away with the hello world example. Just don't forget to pip install cherrypy
If you do this, I recommend the thin slice all the way through to deployment. Get Hello World running locally and then deploy it. Get Hello World with some CSS styling running locally and then deploy it. Get Hello World with database augmentation running locally and then deploy it. What you will probably learn is that the way you deploy it is as much a part of the building process as the building itself...
With platforms like Heroku and Amazon's Elastic Beanstalk, I feel that deploying side projects is actually quite simple. Of course there will likely be some troubleshooting the first few times, but once you get your app running, deploying becomes trivial.
After watching La La Land, I finally settled on the instrument I'd dabbled with for years - piano. So I enrolled in a music theory course and I'm gonna learn to play the piano along with it.
Conversational Navajo. It's such an interesting language with an amazing history. I don't know any other languages right now besides English and a bit of Spanish, and I didn't grow up around any Navajo people. Despite a relatively small speaking population, there seems to be enough information online to learn at least enough to hold simple conversations.
I've moved to the Netherlands alone less than 6 months ago - so Dutch is high on the list of things that I want to learn (I can read it pretty well already, but I can't speak or write it very well). I'm using Duolingo, plus I have some Dutch friends already who help me out.
On top of that I want to learn industry game development techniques, including finally getting a solid grasp on C++. I've got a pretty strong grasp of systems engineering concepts and memory management since I'm very active in the Rust community but by the end of the year I want to be qualified to get a job in the games industry. Web development is not going to be my career, that's for certain. I'm reading through various maths-for-computer-scientists books, and I've got a bunch of highly-recommended game dev books (Game Engine Architecture, Real-time Rendering, looking at getting Real-time Collision Detection) in my library. I was an avid amateur mathematician in a past life, so although I'm rusty I'm getting back into my stride quite fast. If anyone has more tips on how to get your foot into the door in game development (engine/tools development, very specifically _not_ programming the game itself) I'd be extremely grateful.
If you want to contribute to anything, I'll be posting it on my GitHub at https://github.com/jFransham. I've got the start of a game in Rust on there at the moment, but it's nothing like production-ready (and there's no actual _game_ there yet, it's just testing code).
I upvoted you because this is the first non programming comment I came across in this content. The question was generic, but incidentally almost all replies are related to programming.
* Distributed optimization. How efficiently solve a large optimization problem with N cores? We would like to the time to complete the optimization to be N times faster. Hogwild[0] and Hogwild++[1] are (basic) algorithms for this.
* Security. What's my threat model and how should I address it?
Those computer science fundamentals that let you ace all of the big company interviews so I can actually move somewhere else and feel confident in getting a job.
Pony! Seems like a very interesting language that doesn't get much exposure. Predictable GC, fine grained capabilities, actor model (concurrent by default), no deadlocks etc.
What: learn not to be so much caught up in thoughts about whatever happens or will happen - which in turn generates terrible anxiety and self-fulfilling prophecies - and to enjoy the present moment.
How: socialize, be more outgoing about who I am, get back into sports and reach back to friends I've been letting down, build new relationships, trust people again. Just keep on building, doing and enjoying things for what they are, not what they might fail to be.
Ship a game. Better understanding of setting up a reliable backend. Grow current business and start ranking better for more organic traffic. Vim. And really work through being able to quickly whip up a project with one of the major JS framework. Also, using a VPS such as DO and make it secure.
I went through this last year. After two false starts with something toward the leading edge, I settled on Emacs, Linux, and JavaScript. All of which I already 'knew' enough to get my face slapped. Photography got added without a formal application. Raspberry Pi sort of worked it's way in under Linux in the second half of the year. Since I haven't 'learned' any of them, I'll probably keep them around in 2017.
I'm also thinking about adding some 'classical' AI at the agent level of abstraction (not the lower DNN level). That probably means a bit of Common Lisp and an excuse for buying some used Norvig books. Like the formal topics from last year, this seems to be a domain that I bump into by trying to avoid it.
Just bought myself a piano, so I want to learn to play - to a beginner level - I'm aware that probably even after 5 years one is still essentially a "beginner", so it's a long road.
Great idea. It took me some 2 years to realize that piano wasn't my favourite way of making noise; on the other hand though it gave me a solid base on the theory of music (intervals, notation, cleffs etc) so that picking another instrument became much, much easier.
And also some Kubernetes, Docker in more detail, explore rkt and CoreOS, perhaps also get into details of linux kernel and finish a custom build from http://www.linuxfromscratch.org/
Get more depth into system security
If time permits, would love to learn more about Quantum Computing and explore if I can contribute in any way.
I want to move out of the cloud. My apps should run on my own server hardware. I feel this is more important than anything else right now. Even growth.
I did the two functional programming in Scala courses on Coursera. I'm currently going through Martin Odersky's book and am in the middle of my first small project. I'm just starting to turn the corner on feeling productive and actually understanding what the hell I'm doing. If I am half as productive in Scala as I am in my main language (JS) by the end of the year, I'll be quite happy.
If you picked up Scala, I'm going to assume you're interested in functional programming. In which case you should check out the book Functional Programming in Scala. Describes a bit more advanced functional programming ideas using Scala
Canning / pickling (IIRC there's a course on Instructables), salsa / Latin dance (there's a local café / bar near me that does regular salsa nights), basic woodworking (my wife and I are making a bookcase and coffee table early 2017), mobile development (started with Android via the Developing Android Apps course, continuing with some projects plus Vogella and other tutorials to fill in specific knowledge gaps), game design / development (a combination of reading books such as The Art of Game Design: A Book of Lenses, playing games and picking apart the design decisions, and working on game projects).
Time will tell how much of this I actually get to, but at the very least I'll be busy :)
The secret of learning Salsa (and other things) is that most people give up to early (after the 1st lesson, 2nd lesson). If you keep on going, the lessons that were hard for you in the beginning will become easy. If you keep going and get better and be (more) social and fun, the follower that you were intimidated to dance with will ask to dance with you... (the tipping point, an important milestone).
If you can take lessons with your wife and practice with your wife at home, that will make it easier. The hardest thing for single persons who start learning Salsa is that they don't have someone to regularly practice with. This is usually not a problem for the most dedicated beginners, as they block off their free time for learning salsa (multiple lessons a week all the way up to multiple lessons a day). The most social tend to progress the fastest, as everyone wants to be around someone who is fun and social. Salsa is a community, like anything else.
Addicted2Salsa has enough free lesson videos to keep you busy for a long time.
Robotics. I know some basic Arduino and would love to build a wheeled thing with a robot arm. Maybe with a camera in streaming. This is super wisful thinking though, if I can make the wheeled thing (with power electronics) I'll be happy.
Thanks for advice, I am using similar approach too. Because I also try to learn the positions too, so if you ask me what note is on sixth string/8th fret I have to know it's C and then if you ask me where are the other C notes, I need to know other string/fret pairs.
A mnemonic that helped me was learning relative notes in 'shapes' on the fretboard.
The octave is 2 strings higher & 2 frets higher.
The perfect fifth is 1 string higher & 2 frets higher. (Same shape as one of the movements of the knight/horse piece in chess :-) )
The minor third is same string & 3 frets higher OR 1 string higher & 2 frets lower.
The major third is 1 string higher & 1 fret lower.
On a normal tuned E-Bass this is valid for every string and every fret.
On Guitar you have to add "1 fret higher" if your start point is on string 1-4 (E to G) and the target is on string 5-6 (B, e) because the interval between string 4 and 5 is different (major third instead of perfect fourth).
Good Luck in 2017! My goal is also "continue learning Clojure and build stuff with it"
Specifically, I want to learn how to:
1. Build and deploy an F# web app with Suave as the web framework and Fable on the frontend. I'm not quite sure what to use as a backend (I know and use Postgres, but am open to using something else).
2. Test my code using FsCheck (based off of Haskell's QuickCheck) by defining properties/attributes.
3. Use computation expressions
4. Use and build type providers
I'm a professional Ruby on Rails developer by day, so I'm interested in F# because it's so very different than what I'm used to. Plus, it has a lot of shiny tools/toys that I want to play around with and learn.
3D modeling and animation. I know this is a field that takes years to master but I'd love to be able to design my own characters and objects for games and video composites.
Great goal! I highly recommend to check out Nevercenter Silo for modeling, and Maya or Houdini for animation(Maya is the most popular, and Houdini is the most awesome).
Elixir, and probably Phoenix. We have a large IO bound orchestration layer written in Scala that's been struggling with our traffic lately, and it's been a lot of work to optimise performance. Curious to see if Elixir can help us, and how.
With Scala you have to be very careful to explicitly avoid blocking operations. You also have to micromanage execution contexts across the various components (or services) of your app. I also like the sound of the resilience provided by the Erlang OTP and the "crash early" strategy.
What I don't like is the prospect of losing static typing. Nor do my co-workers. We need to spend some time doing R&D.
In 2017 I want to move my digital electronics skills from "patching together 30 years old ICs on a breadboard while playing with devkits" to "designing a simple board with modern components". I'm finally taking the plunge to SMD soldering, and the ultimate goal will be to make a fully functional JAMMA game board using a decent FPGA (a project I left incomplete 10 years ago, which has always bugged me).
I'd like to learn to leverage collaboration and the societal politics of my field to help achieve bigger and more impactful projects. Being a loner is only going to get me so far, I've realized. (I'm a grad student.)
You can be the best developer in the world, in a job that leaves you alone and lets you write code, and you might get several times as much done as another developer. Or you can spend a little less time writing code and have a few productive meetings and discussions, resulting in far more development than you could ever do alone. And you'll still get to write plenty of code.
Came in to say this :) If you want to maybe pair up or some sort of structured learning on it, let me know. Could be cool to have a partner or some accountability. Although might be silly to do for learning an editor , ha.
I use vim and emacs both. From a power user standpoint emacs is better. From faster edits perspective vim is better. I am sure most will agree with this view.
Perhaps the best of both worlds -- spacemacs from the get-go?
Personally I don't like these Emacs distributions so I might recommend the way I did my journey: first vim for years, then emacs+evil. You'll learn the bare emacs basics on the side. Now with Vim 8 having vastly enhanced IPC capabilities, Emacs might not be at such an advantage anymore. The amount of Vim users is staggering, and they have such energy. It's a nice community overall. (Not that Emacsers would be any worse.)
I have been doing scalable back-end systems for years and can tackle interesting problems quickly. But, with UI work, I am like an infant with crayons. It takes too long to go from desire to product.
- 10 seconds Free-standing Handstand: Practice 6-7 days a week, for twenty minutes, following the GMB Handstand progressions.
- 10 seconds advanced tuck back-lever on the gymnastics rings: Practice 3-4x week, following FitnessFAQs progressions.
- Bulgarian split squats, 4x12 50kg: I'll go with a somewhat linear progression -- work from 3x8 up to 4x12. When I do 3 workouts using 4x12, I'll up the weight by 2-4kg and start a new cycle.
- Books I'll read:
1. Gödel, Escher, Bach
2. Black Swan
3. The Society of Mind
4. Code complete (I'll read a chapter every week)
- Finally learn about compilers/interpreters:
1. Work through "Writing an interpreter in Go"
2. Work through "Language Implementation Patterns"
4. Work through "Engineering a Compiler book"
5. Do the Kaleidoscope LLVM tutorial in OCaml
- Get good at algorithms to have a better chance at landing a job in one of the the big 4:
1. Work through HackerRank's Cracking the Coding Interview track: I'll do 3 challenges every day until I am finished.
2. Solve as many problems from LeetCode [1] as I can: I'll solve 2 problems every day.
3. Work through the "Algorithm Design Manual book"
- Really learn Java. Java 8 looks interesting and I see there are a lot of job opportunities for Java devs.
I think learning the handstand is a great idea. For me, handstands helped relieve a ton of shoulder pain I had from football + too many bench/bicep workouts. It also just looks super cool to boot and you can do them anywhere. Best of luck
The basics of what's required to become a quant for trading algorithm research. I already do a lot of linear algebra and calculus in my day job, and I love the challenge. I also have some experience with competitive predictive analysis during game AI competitions, which I turned out to have a knack for. I see Ito and related fields as the next level, and the money doesn't hurt either.
I'd advise against the one week intensive courses - the muscle memory just takes time to build. A one hour lesson once a week is about right, with maybe an hour more practice per week if you can persuade a friend to take you out. Allow one week per your year of age is the rule of thumb. Good luck!
I think you can do more than one per week but I agree, it does take time to build the muscle memory.
I learned in my early 20's and I did it in 6 weeks. Get the theory part out of the way ASAP.
When you have got your license is the time to watch out for complacency. The road is full of egos driving Audis, don't get involved. Keep a safe gap and you will deal well with uncertainty
I would love to learn how to focus in one damn area of CS, I have been doing some IT Security but it's sooo wide and there are sooo many things to learn and ace and I don't think I'm Linux /programming /DBA /Networking / robotics savvy at any of these... I'm just confused about how to direct my career... Oh and I'm 35 hehe
Winemaking. Not the WinOS emulation kind. But the cultivation and fermentation of fruit. With the eventual goal (beyond 2017) of living on a producing vineyard.
Formal study would be fine, perhaps at UC Davis' world class Viticulture and Oenology program. Or in Burgundy, France. But for now just apprenticing once a month at Wind Gap Wines in Sebastopol and seeing whence it leads
My plan is to keep a cadance of one doodle a day on my intuos tablet.
I'll start out with 100 days of drawing anything. After 100 days, I'll start trying to make them more tutorial-oriented. Then I'll start working on cartoons about Linux commands. I might also explicitly just imitate some of Julia Evans' stuff. I might do some maps of US revolutionary war battles or diagrams of contra dance steps. By the end of the year, I hope to have done at least a few illustrations for the Postgres docs.
I have been reading alot about Machine Learning and I want to get into the practical application of it. So I will begin with learning Mathematics and then some Machine learning code for training a basic model for NLP or Facial Recognition :)
Any suggestions on how to go about learning Mathematics requires for Machine Learning is more than welcome
He wants to get into the practical application of machine learning, not machine learning theory.
This is a common mistake people new to the field make. You can be very successful by learning how to use machine learning frameworks, and that doesn't require lots of probability theory, mathematical statistics, and optimization. Not that it hurts.
vayarajesh, start using Tensorflow, you'll reach the ability to reason about problems to which machine learning can be applied, and how to apply it, much more quickly than starting by starting at the root of the tree of knowledge. You can always learn as much math as you want in order to dig as deeply as you want, but first get a sense of what you're dealing with.
++ this. The branches of maths that are relevant to ML are all pretty extensive, and you can do a huge amount of applied ML and understand the underlying theory while understanding only a fairly small subset of (for e.g.) probability theory.
Starting by learning the maths will mean you learn a lot of stuff which isn't directly relevant. Not the worst thing that could happen, but you'll be a hell of a lot more directed (even if you want to learn the theory - and I would recommend learning at least some) if you pick a decent ML course and learn the maths you bump into as you go.
http://cs231n.github.io/ is one of the best general hands-on introductions I've found. The TF tutorials are pretty good too if you just want to try some things out, but I predict that once you've worked your way through the TF tuts you'll still not really understand what's going on and will feel a bit like you just learned the magic words that made the black box dance some particular dances.
@solipsism, I did try out the TensorFlow playground and they use lot of mathematical terms which I don't understand yet. Al though I like the idea of diving in and then learning the concepts which I come across to accomplish NLP or Facial Recognition. Thanks.
Mathematical terms like what? Perhaps they could just be explained to you. Starting at the root and working your way up is a long, long path. And unnecessary if your interest is primarily in applying ML.
I have plans to relearn undergraduate mathematics (upto Functional and Complex Analysis) and learn the basics of computer science (just Algorithms, Data-Structures and Discrete math) in the first half of 2017. Being able to do this successfully would mean a lot to me.
Finnish and Hindi are the two languages I wish to learn in the next year.
I want to learn to create a business however small from my own piece of software. This includes creating an useful software for people along with marketing and selling.So far I have struggled just to get eyeballs to my works. It has been a revelation to me on how difficult it is to market and eventually sell software.
I haven't enacted it, bit some solid advice I've seen is to put up canary sites for your ideas.
Spend some time on a good marketing page (which you'll have to do anyway) and have an newsletter sign up where a download link would be. You can get a feel for how many people are interested, and having a known audience can keep you motivated to keep working.
Learn clojure. The time feels right for functional programming with react and datomic. Been doing imperative and OO for 25 years. I've never gotten around to learning a lispish language. I find rich hickeys talks very inspiring. Smart people have a way of making complex things seem simple.
This thread is awesome, so much enthusiasm and curiosity.
I'd like to learn/do a couple things in 2017:
- An overview of college-level conceptual physics. Historically I've tried to leap-frog into advanced physics because my math is pretty good, but I end up missing out on the concepts. So I'll stop rushing and do it step by step.
- Deep learning and deeper machine learning. I'm pretty familiar with ML in general but have never had the intimate understanding I've wanted, nor taken the time to properly dive into DL.
- Bahasa Indonesia and Mandarin ^_^ (while maintaining the rest)
- Abstract Algebra and Information Theory
- Keep up the pace with reading interesting books
- Become more familiar with devops and systems programming (Docker, Rust etc...but not an expert necessarily)
As an aside, I'm also trying to improve my running, swimming, and martial arts :)
I want to learn Generative art! I really enjoy the intersection of programming and art. I have previously worked on couple of designs using python and it was amazing. I want to continue that again this year(once I have a full time job). I really think I can work some design that might sell too!
- I have learned the foundations of Node, React/Redux, and Docker, and in 2017 I want to get really competent and confident at that. I would also like to figure out how to use ActivityPub.
- I want to get really good at making my video tutorials about digital art.
- And I want to get way better at making my webcomics.
Math-wise, well, it's a matter of where I go to college, I figure it'll have a huge effect on basically everything that happens thereafter. I definitely want to continue on my path towards understanding the Weil conjectures and that kind of thing, so I plan to be able to compute sheaf cohomology for schemes by the end of the year and learn more algebraic number theory. (And maybe look at representation theory.)
CS-wise: learn enough ClojureScript to be able to make convincing mathematical (etc.) visualizations -- I recently got a taste of Figwheel+Reagent and I'm hooked! -- and be able to manipulate Haskell transformer stacks better.
Other than that, I'd like to learn some French (marathoning Engrenages was the best decision ever!) and not forget the little German I know.
I want to improve my networking skills and land a remote job.
Being in India, I can do a lot of work for much cheaper rates than others out there. But I don't want to waste my time with short term projects. Might seem like you're earning a lot but there's very little one actually learns at the end of a few months, which to me at least is a net loss.
So I am going to try to find some kind of long term project/task as a junior/senior engineer, something that's challenging or at least worth putting on your CV.
I am also planning to work on my thinking skills (lesswrong/SSC and Economist), and React.
Not going to add anything else. Discipline is the word for this year.
How to master theoretical material and consolidate the things I learn. I've basically stumbled my way through a Computer Science Undergraduate degree without actually understanding anything I've really done.
Image processing, I know a little bit of the theory, and I did my master thesis on image processing on FPGA with algorithms I developed. But I feel building a working program needs lots of experience not just theory.
Good Habits. This dopamine addiction went on for too far long. Ruined my first two startups, lucky to have another to help me financially. Running, Avoiding Social Internet, NoFap and more time to family.
I'd like to finally, officially, explore functional programming. I see a lot about it, and I get the general gist, but I want to actually dive into a language and feel first-hand all the differences.
One of my current goals is to learn Idris by working through the Idris MEAP book[0]. I have set up a cheap ultrabook running Linux for this purpose, and intend to disappear to a library or cafe semi-regularly for Idris time. If I make it far enough, I intend to implement some P2P network protocols (e.g. STUN, Zeroconf, BitTorrent Kademlia overlay).
Economics. I have started to get interested in them in 2016. Like most topics I get into, I started by looking at the history of the field. I also read Basic Economics. Now I would like to start taking actual lessons, either Coursera or maybe even physical classes at some point, if I can find good ones compatible with my work schedule in Paris.
I also want to get up to date with the most important advances in my field (distributed systems and algorithms). I did follow research in 2015, but not in 2016, so I have to catch up a bit.
I may just do the wim hof method sometime in the year. After a crazy 2016 where I let the information flood me, I feel that understanding and appreciation for things was low. My intuition says it might be better to focus on a thing a month or two (depending on how alien the thing is) to get to a place where the mind has adjusted its cache eviction policies and made the new item into L1/L2).
In terms of practical benefits, I still hunt for python idioms on a routine basis. Owning and flipping through a book occasionally comes to mind. Any suggestions? (I am pretty good with multiple years on the language across 2 and 3)
I would like to stop flirting with machine learning and just finish essential chapters from statistical inference and spend time on linear algebra. Then maybe I would try to understand backpropagation for real. Meanwhile, applications must continue to be built and I must learn effective techniques to preprocess data. I would like to do more work in Pandas and Hive.
I've found my notes to be a trustworthy friend. I need to set myself a reward system to inculcate a habit of writing more (daily thoughts, project ideas, blog...) (and on paper)
I would like to fingerpick a few songs I have in mind too.
This would be a good list if I go deep. Could I make space for haskell, clojure, scala? Probably not. Might just read Backus's functional language paper though.
Career: Transition from engineering to product management (starting mid-January so getting that one sorted early)
Personal: Mastery in something non-computer related. I've spent my twenties building a career in software, have built a startup, etc but want to end my twenties and begin my thirties with something new to "master" (even though we can't ever fully master something). Increasingly fascinated by freediving and reconnecting with nature and what the human body is capable of.
If you can afford it, take courses from Pragmatic Marketing. Also remember that product management means a lot more than just software. I found it hard to break into pure product management without that coursework and more "business" experience.
However, technical product management is a different story than "pure" product management, and for me, was a more logical transition from software engineering/dev.
Amen. I got better at finishing by starting really small. Like putting together a small puzzle (and finishing it), then moving onto a paint job for my library shelf (and finishing it), then moving onto building a roof top garden. In my experience, this skill of finishing does carry over into technology projects/work, even though the first attempted projects are distinctly non-tech or non programming oriented.
Also may I suggest you word your goal as "finishing most things I start, rather than finishing everything I start" as this setups you up better for success than an all or nothing approach.
Improve my skills in Solidworks and overall mechanical engineering design expertise, as well as electronics and manufacturing.
Outside of work, perhaps one day a week or less, I am planning to take some of my photography and turn in in to wood carvings using a custom automated workflow via commercial laser cutters. Allows me take the best of digital by working in vector, but maintain the satisfaction of an analog result by printing a tangible, physical result.
In 2017 I want to learn what levers I can move to make my company more successful. If it's email marketing, then I'm going to learn everything there is to know about email marketing. If it's a neural net or averaged perceptron classifier, then I'll learn everything about neural nets and averaged perceptron classifiers.
And I also want to learn how to play the Stone Roses' I Am the Resurrection on guitar.
This is also something I'd like to dabble in after getting some success with an affiliate site. I have an idea for a niche if you want to bounce some ideas back and forth. Email is in my profile.
User Acquisition. Preferably for B2C apps [1] and how to partner with influencers. I'm comfortable building web + mobile apps, but when it comes to distribution/marketing, I lack the experience. But it's something that I'm trying to actively learn through experimentation.
Becoming C++ guru, I mean in professional way. My 2017 mean focus on C++ as much as possible, then apply for C++ job abroad ! (I think about going to Europe or US).
p.s. I have bachelor degree in CS, and my theoretical (specially in Design and Analysis of Algorithms and Operating Systems) foundation is rock solid, maybe same level of a last year graduate student from ordinary university (not top-notch of course). But I need to learn more about Compilers and Programming Languages and their underlying technology, and I have chosen C++ as language that I want to spend my career on. So 2017 for me means C++ ! (and a little bit of Rust).
Another things I really like to get my hands really dirty is build tools. I do use CMake for my personal projects, but I want to learn Autotools, Meson, gn, etc. Because I fucking hate build tools, so I think knowing more and more, is good idea to understand whats going on in build tools area.
p.s. I wish next year this time, I can look at past and proud myself! I wish, wish me success HN!
Calculus, Statics, Machine learning, Economics courses in coursera. Being more helpful to colleagues. More exercise. Less browsing. Less junk food. More water. Mastery over profiling tools. Understanding how floating points work. Working out the floating point exercises to make sure i had understood. Learn to form sentences without using "I".
I want to learn Front-end and Back-end developing furture in 2017, I want to become a professional web developer, competent to do things like server, database, javascript, UI, http protocals, safety and profiling.
I have built some basics of Linux, Python, Ruby, HTML/CSS/JavaScript and tools like Vim/Emacs in the second half of 2016. I decide to do program development on my 27th birthday. My major in the University is English Literature.
More in details, in 2017, I plan to learn Elixir, MySQL/PHP, Sqlite, Ruby on Rails, Django/Flask, Node.js, Gulp, advanced Javascript, Material Design, Semantic UI, Docker, Travis CI, Jupyter, Lisp, Haskell, basic Machine Learning and pick up math like calculus, probability theory, linear algebra which I've learned in the University.
I desire to become a remote developer who can earn at least $30000/year after 2017. That's my target now. But in the long run, I want to be an expert in ML and AI.
Very cool, but I'd suggest narrowing your list of technologies down substantially: I'd suggest learning one database well, one backend language well, and one frontend framework well. Then you can spend some time using what you know to evaluate which other of the other options you want to learn. Otherwise, you're going to spend most of your time tripping over syntax, which really isn't useful learning unless you plan to be actually using a syntax extensively, IMO.
I learned AngularJS in 2016. Everyone wants to hire a React developer. I don't know if functionally one is better than the other however the small devs shops what React developers. Otherwise, people are looking for web developers strong with Rails, Django, React ecosystem, JavaScript on server, Postgres, and Redis.
Since I wrote that comment I have found a job using React. They are confident I can pick it up looking at my code portfolio which makes me lucky. The point is that people are looking for React developers or in this case someone who they think can pick it up quickly.
IMO you should aim more for depth than breadth. I reckon it's a better strategy to pick a single server side language/framework and become a master w/ that (you have 4 listed above).
My goal for 2017 is to get a _lot_ better at the fields of reverse engineering and vulnerability discovery (as well as showing PoC).
The plan of action: keep at it by attacking more wargames and CTF (capture the flag) contests. Also, I should probably try to consider bug bounties, to be able to orient the skills to real world problems as well.
* Android. Built a really tiny but useful app after reading up tutorials from a gazillion places in a couple of weeks. I still don't have a very good hang of the architecture or the most optimal way to do things. Any recommendations on this this front would be very helpful.
* Computer Graphics. This is one area of computer science I am really interested in and wrote my undergraduate dissertation in. I want to go back to the basics and get up to speed with the new trends in the field. Again, need recommendations on how to proceed with this.
* Become a Python Ninja. Python is one language I am really comfortable with and whenever I can't get anything done, I go back to Python. There are still several facets of this language I need to explore.
And lastly, I need to quit my current job and work on something that lies somewhere in those^^ areas.
Your slides have a good overview and can be very useful for 101-102 sessions :)
But this isn't what I'm looking for. I have a bird's eye view, I can build apps, I can make games. But that doesn't make me a good Android Developer or an expert in computer graphics. I need recommendations for texts/courses in these fields.
- I'm learning Elixir and Phoenix and want to build a side project using it.
- Want to learn about sysadmin stuff. I know the basics but I want to learn about automating the infrastructure using various tools like docker, ansible, terraform, etc.
- Definitely want to learn and build cool IoT stuff.
If you're interested in web development (and perhaps even if you're presently not), you may want to take a look at Elm. It's a functional language that compiles to JavaScript and is almost entirely developed for the purpose of building web components and applications. The way the functional features and other language features are explained as directly benefiting the developer experience is pretty cool.
I want to learn how to walk on my hands. I will achieve this by repeated wall hand stands at home. I also want to learn how to live again and how to respect myself, so that I can create a distance between me and work, and stop wasting my short life in an office
React Native - want to add those to my dev stills toolbox along Swift/Obj-C
Networking - to find more freelancing opportunities
Video Making - to better market my apps
Bahasa Indonesia - to better communicate with locals when in indonesia/malysia
I'm planning on studying deep learning techniques and relevant literature so I can apply it to the generation of better phonemes for my Donald Trump text to speech engine [1].
I've also got a huge interest in film and intend to teach myself filmmaking. I've had an interest in exploring it since middle school, but I've never committed the time. This year I'm obligating myself to film and edit something short every weekend. I live in Atlanta and our film scene is burgeoning, so I'm also hoping to network with local filmmakers and students.
Anyone in the Atlanta area interested in either of these subjects?
I want to build a product which can let me leave my full time job and support me financially. I have built a lot of products over the past (http://www.websrvr.in/ , https://zammu.in/ , https://getsimpleform.com/) but none of them have allowed me to work on them full time. I should probably spend more time in marketing/selling the products.
For me this year will be about focusing on growth for my new SaaS venture.
I'd like to learn how to sell a SaaS product - talk with customers and gather feedback and also how to manage a business.
Also I would like to learn more about marketing and different growth hacking techniques.
P.S. Also if you are in need of Intercom analytics please give us a try - I would be glad to have you onboard.
Android programming, Terraform, Docker and putting containers in production using Kubernetes. I also want to improve my mentoring skills as I've realized I've become a fairly senior developer nowadays.
I want to learn C++, specifically for the Ue4 engine. I have spent a few years using blueprints and prototyping games for mobile, PC and VR and it looks like I might be able to actually get into the VR thing full time next year. I imagine I will need to have a good grasp of C++ to really commit full time.
Planning to use the Unreal tutorials and then a few YouTube tutorials I found and I'll check out Pluralsight, and then just start building stuff!
I'm coming from a C# base so any suggestions would be greatly appreciated.
Sorry no links, on mobile and don't have access to my bookmarks.
1) I'd like to learn how to create a programming language.
Nothing complex or groundbreaking, but i've always been curious about how that all works. Maybe if it works well enough (it won't) I'd even adopt it as a scripting language for
2) Game development. Either to really learn Unity or C++/SDL/GL but put out something that isn't utterly basic and pedestrian.
3) I don't know. Something new. I'd hate for my life to have become so predictable that I can easily predict what opportunities will arise or what the limits of my ability to learn will be.
New people who share my interests. In 2016 I started dancing again (I had a break of 4 years and forgot almost everything) because a buddy of mine needed company at the salsa course. I started bouldering in spite of my back problems because a college of mine needed company in the boulder-hall next to our office. Now I want to trade my drinking / women obsessed buddies for folks intrested in web dev side projects. It is quite lonely if you can not talk about your hobbies.
On the other hand I want to learn urban sketching.
I started writing a sword and sourcery novel on my rail commute, and its been much more fun than listening to fantasy audiobooks (which are very hit and miss in quality).
I've previously learned some French, German and Mandarin Chinese. I'd like to reach the threshold where I manage conversation in one of them by the end of the year. My Mandarin learning is most recent, my German was the most in-depth, and there's a French programmer working next to me. I dont know which one to do yet!
I'd recommend going with the language you're most likely to use extensively - since you're sitting next to a person speaking French, I'd say that might be a good option. It's too easy to underestimate the importance of conversational practice while learning a language.
I'm finishing up the CFA (hopefully), and when I'm done I want to expirement with learning how to teach motivated learners better. I've come to the conclusion that most resources aren't that good for quick learning. It may simply be human (my) limitations, but I suspect that there are better, unexplored ways. I also think they may not be monotizable, but that is ok. I just want to finish the cfa in June and in my free time, learn all about teaching and learning.
Yes, absolutely. I don't think the blogging format is really want I want to use, but I will be doing all of it in writing so that I can get advice, tweak, improve etc.
I'm thinking about starting with a limited format, say no more than 300 words for explanations and a few images. I want to focus on teaching the absolute barebones basics of a concept so that someone could then go to wiki or other sources with a basic understanding. IDK. Something like that.
I want to get more comfortable with Rust and Python internals (CPython, GIL etc). I want to give a shot at getting rid of GIL in python using the concurrency concepts used in Rust.
Get to a point with Rust that it's my go-to language for personal app development and general scripting. Super happy to see Rust feature so often on people's lists btw.
Get to a point with general Machine Learning understanding and proficiency that I feel I can usefully contribute to OpenAI work.
Build a retaining wall under my house, and have it still be retaining the things it's intended to retain come the end of the year...
My goal for 2017 is
1. Deploy my application
I learned IOS develop in 2016 and building my own app, One is for unicooo which I already build a website. Another application call Cherry which is for finance.
2. Learn a new languages.Computer one and Real life one.
I learned Swift and Japanese in 2016, Now I also wanna learn Rust/Go and Spanish in 2017.
3. Learn more math, when I start learning machine-learning, I know I have to learn more math to make myself better.
1) I want to learn Java and be an expert in it by the end of 2017. Also, some of the basic concepts of computer science.
2) I am going to start a new food website where I am going to create and share new recipes. I really want to learn so many new recipes and improve my cooking skills.
3)I am going to buy a Ukulele next week and I want to learn it so badly. This is going to my first musical instrument and I am so excited.
> I really want to learn so many new recipes and improve my cooking skills.
Consider watching Alton Brown videos on youtube. I find he does a good job at explaining cooking at a lower layer of abstraction. Also, a big part of cooking is keeping your kitchen organized, so think of the physical layout of your cooking space as a UX/information architecture problem. If you have a disorganized kitchen and are trying to just follow a recipe, then you will feel overwhelmed as you aren't able to hold things in working memory.
Not wanting to seem negative. But becoming expert in Java in one year sounds nigh impossible. Depending on what constitutes expert, of course. And the amount of CS education and experience you have before.
But don't let this stop your for trying to become really good at Java. Or any other skill, language.
I'm about moving out, bought my own flat. Looking forward to be independent. Learn cooking, cleaning and grow some healthy vegetables on my balcony.
On the other side i finished a climbing course recently, now i want to practice that further, so i can climb one of the three peaks of Lavaredo.
As a programmer i want to take a step back, spending less time in front of the computer and socialize more, though it costs me a lot of energy.
I think I'm trying to get in Salesforce development. I don't know if it's possible for a self-taught (predominantly) hobbyist developer to pick it up, but Apex does not seem to complicated. I'll probably come up with something simple but useful and publish to the App Exchange store.
I also might mess around with the Salesforce Heroku connect and build some Spring or Play application to connect with Salesforce data.
My goal for 2017 is to learn something new everyday. However, I will be concentrating more on Python and try to learn enough Python to assist me in Business Process Automation and Data Analysis.
A recommendation for monads. Don't read too much tutorials, try it. Programm in some languages that emphasises monads and then reflect how you used them. I think these fundamental concepts are way easier to experience than to explain.
Edit: what are toposes and why do you want to learn it? Has it some connection to topology?
All the "monad tutorials" are utter crap. Esp. the one with the burritos in spacesuits. All you need to know is that a monad is a monoid in the category of endofunctors and it all comes naturally from there.
For monads, learn the following concepts in order:
Category
Functor
Natural transformation
Adjoint functor
That's it.
If you don't understand what monads are you should probably wait with topos theory. It quite abstract and you should probably be comfortable with both algebraic geometry and category theory before you approach it
I would like to learn enough Racket to start coding some real-world applications.
I am finding the Racket documentation a bit problematic: it's either "learn this super-specific things with no prior introduction" (example: the "continue" guide) or "learn everything from the very ground up" (example: the racket guide or how to design programs).
I want to mount the structure sensor from occipital which gives depth info and be able to build a map of my house. Still a lot of things need to be done but I have ideas on how to make it work.
I'd like to learn some basic physics, up to the stage of understanding electromagnetism and other magnetic phenomena. I've got a notion about how to design a more efficient coil-gun, but can't find any electromagnetic simulation software that I can use to test my idea. So my plan is to build a basic simulator from the ground up, learning in the process.
I wanna develop the small desktop games via Godot for Linux and HTML5 in new year. I started to learn it and go on.
And i participated goodreads challenge to read 5 books in new year. The most will be related to programming and operating
system. I want to learn go programming, and read all chapters of Tanenbaum books about operating system and distributed systems.
I want to understand the principles of a signals and signal processing, as they form info theory, and the theoretical underpinnings to learning. Then I want those insights to enrich my deep dive into machine learning, esp deep NNs, in particular to extract ineffable features from images and other complex signals, and finally, how to build a mind.
Learn programming, I have dabbled a bit in Python and R mostly for data analytics but never achieved anything at the level of proficiency, I always get frustrated. I am from marketing but I get so many ideas about apps that I feel knowing to do my own thing would be great. Also run a sub 2 hour half marathon and start a blog about running.
Would love to get your feedback. It's designed to give you practice actually using (speaking) Spanish. Totally different from Duolingo, Memrise, et al, which I find unbearably tedious.
I had the same feeling after I received the Oculus years ago from the Kickstarter campaign, but now with the PS VR I am sure of it; VR is here and I need to do something with it. I want to make at least one VR application and because my 3D chops are from the late 80s, meaning pixel based vector graphics, I have some catching up to do.
- A different hello world every 3 days
- Write better
- Think outside of the box
- Embrace exposure
- Docker
- How to make a VR app
- Understand inverse kinematics
- C
- Crystal
- API Gateway microservice
- Concurrency patterns
- Understand FPGAs, and an HDL
- Applied machine learning
My biggest personal goal for 2017: read more. I only read 20 non-technical books in 2016, which is probably the lowest number since I learnt how to read. I've set up a "want to read"-list on goodreads and I'm rearranging my schedule to make room for reading time.
I'd like to go even more back to the fundamentals. Hopefully finishing SICP, building a JavaScript interpreter/compiler and other fun experiments to get a better understanding of the foundation that we're building everything on top of today.
It covers the foundation of functional languages with the simply typed lambda calculus, and also the principles of formal specifications and proofs. It's suitable for self learning, but is a significant effort so you need to have a strong interest in these topics and be ok with a very formal approach to software.
I am working on starting a computer programming school in India over the next year. So going to focus on learning a lot of learning methodologies and learning as much as I can about various ways of teaching programming effectively.
2. learn more about basics CS knowledges like algorithms, data structures.
3. Figure out what is Machine Learning. Maybe learn some Discrete and Linear Algebra for better understanding, but first I'll write some code using frameworks.
My project for 2017 is to build and learn how to manage network infrastructure. I wrote up a blog post but the TL;DR is learn how to network hardware together with switches, managing storage servers, dedicated servers, etc.
1. Meditation and focus
2. enough physics to understand Erik Verlinde's paper. I know it might be too much, so I will start with one of the books explaining general relativity from the high school physics and math.
Webassembly, graphical design, sales and marketing. It's time to anti-fragile my income stream by making lots of side projects and getting some of them to make money. 12 months of 2017, 12 potential side projects.
My goal for 2017 is to make career in Data Science field.
I want to learn by doing good projects in this field but I dont have any ideas. Apart from Kaggle, is there any other sites which have projects related to Data Science field.
To build a new language/compiler combination for a specific problem domain. Nothing fancy, just something that spits out geometric shapes using code rather than a GUI. Start small, web accessible and cheap.
I want to learn about how to be a good technical leader. I just promoted into a new position and i have to handle 80 developers. So 2017 will be a huge experience for me.
I want to figure out how to get better at customer development. How to productively figure out what people really want or what is the real essence of their problems.
You should start with "Introduction to Statistical Learning" which is the baby brother of "Elements of Statistics Learning" (arguably THE reference book) - it's easy to follow and has examples in R, a functional language.
All the best with your hindi effort. I don't have any resource recommendations to give but if you wish to ever talk or clarify hindi concepts, you can hit me up.
Only yesterday, I was cribbing about the lack of quality hindi content on the web. Time I actually started trying to do something about it >_> .
It works well with a legacy/enterprise stack that I work with. I can't really get the benefits of Angular 2 ( Typescript, Server Side Rendering, better? component system) with the stack that I use, but I will be looking into React for some potential Ruby/Rails apps.
For Meteor, I highly recommend the Discover Meteor book. It is a bit behind the times but you'll get the foundation from which to learn the new state of the art as described in the meteor guide.
Counterpoint: ReactJS solves a lot of engineers' problems in a clean and elegant way. Even if it goes away, the ideas behind it will continue to be good ones.
There's nothing wrong with Haskell, but I think that a lot of people mythologize it because it's not used by many people and has an air of academia. A lot of people do the opposite to ReactJS because it's a popular framework that a lot of people use. It has no mythos. Of course, mythos is orthogonal to actually having practical, useful ideas.
Sure I'm not against reactjs and that is just one example. It's a good framework to solve problems, but I doubt I'll get deeper insights from learning it.
The architecture underpinning ReactJS offers some generally useful abstractions (that have appeared previously in other forms). The difficulties arise when the implementation of abstractions are viewed as a magical property of some programming languages rather than others. It doesn't matter whether it's 'object orientated' or 'functional' or 'one way data flow'.
I'm very, very, very open to suggestions... especially if they're presented from the ground up, and in lots of detail. I'm also quite open to material that can be read rather than watched.
I'd like to learn EcmaScript6. I'm pretty proficient at 5 but 6 has really evolved the language and made it a more functional language. It seems promising!
The majority of information out there, including tutorials and blog articles about others' successful deployments, comes in the form of very high-level overviews. Everything I've found is an introduction to getting a basic docker instance running. There is very little useful information out there as to how to run a proper multi-host cluster.
There is core Docker. Tack on docker-machine, docker-compose, Swarm, and the dozens of 3rd-party cluster management abstractions such as Rancher - and the intensity of the headache never stops growing.
It sounds wonderful, but there is so much to learn to be able to tackle a full production stack. It's one thing to successfully launch a working cluster after hours of manual tinkering. It's a separate beast altogether to fully automate setting up a new cluster by issuing a single command, taking into account consistent configuration of: secure networking, persistent volumes with backups, deployment of container configuration and VCS codebases (ex: nginx vhosts and your code itself), etc.
My goal is to set up an entire project in such a way that there is a single suite of automation that can deploy all environments: development VM, staging, and production.