Ask HN: How to blog things I've learnt in graduate school?
Hi,
Currently, I'm pursuing a masters in Control systems. After looking for a couple of blogs by researchers and graduate students I've had some trouble understanding in how to document/write the things I'm learning in graduate school.
Ideally, I'd like to write to help understand how deep my understanding of the subject is but also be a way to contact people who are interested in the field of control systems & machine learning as two overlapping fields via a personal blog.
A few of my concerns involve:
1. How to maintain a technical blog without sounding like an academician i.e examples of other good blogs.
2. How to spread the knowledge from the courses I'm taking legally i.e. how much out of class homeworks/material is it okay to share?
Thanks for reading!
(
51 comments
| 213 points
| on HN
)
Because, one, you aren't an expert yet, and you would feel a lot of responsibility to try to make sure you always got it right. That would impede your writing, make it more laborious, and greatly increase your chagrin when you (inevitably) get something wrong.
And two, "what I know about Control systems" is frankly not that interesting a topic.
What IS (or at least could be) an interesting theme is "my adventures and fuckups trying to learn Control systems". You take the standpoint of a learner, a way-farer, and you write about what goes wrong, and occasionally, your triumph when things go right.
This adds a human, emotional component. You'd be writing about your (intellectual) struggles and achievements, and that's always interesting -- as well as easy to write about.
You can get as technical as you want, in this role as struggling apprentice, dive really deep when you actually make a discovery. "Wow! I just actually got this concept for the first time!" That makes a great blog post. But so does, "Today I screwed up a whole lab experiment because..."
Human interest, with a technical slant.
This. I'm long out of college and after thinking about starting a small blog for years I finally started one on github pages. Not to post super sophisticated articles showing how cool I am, but posts about weird problems or pitfalls that couldn't be solved through some googling. I try to describe the problem and failed approaches too, so should anyone ever have the same problem I hope I dropped enough keywords to help them find it.
2) Don't write theory, write applied principles. I wouldn't share anything that was put together by one of your professors - that is their work. But if you apply their lessons to something in your own work/life, you absolutely can tell us about it, and outline the academic principles involved as you go.
> “The pen is an instrument of discovery rather than just a recording implement.” —Billy Collins
https://twitter.com/JamesGleick/status/1001835227105423360
As for #2, if you have a friendly prof for a relevant course or two, ask them directly! Chances are, they'll be happy to have you write about what you learned from their class, and may even be willing to read your posts and give you feedback.
https://www.youtube.com/channel/UCR1IuLEqb6UEA_zQ81kwXfg
I would be leery of writing too much about things I am studying this quarter or semester. For one thing, you probably don't understand it as well as you think you do. For another, you are much more likely to regurgitate stuff from courses that might get you in trouble for copyright violation or similar.
Maybe make stubs for things you find interesting, return to it later and flesh it out with public citations available online. If you can't find a public citation available online, then skip it.
Put things in your own words. Quote things judiciously and make sure to cite the source. This is easy if you stick to online sources where you can just link to it.
re blogging, I've found Jeff Atwood's articles on blogging on his Coding Horror blog to be wise and very helpful. Also Julia Evans' blog is a great example of someone sharing what they're learning in an inspiring, energetic and fun way.
You can write about anything you learn. You can quote whomever you please. Reproducing small relevant quotes and commenting on them and explaining them is the most Fair Use thing in existence.
Don't copy whole pages of texts; always give proper attribution.
http://setosa.io/blog/2014/09/02/gridlock/ http://setosa.io/bus/
These were major efforts and I don't recommend building out anything similar while pursuing a master's. But control theory does lend itself to simulation well, so I would use jupyter notebooks to present little annotated simulations with code. Print out plots of the state space at intervals for example. I also highly recommend the graphing calculator desmos.com.
You really are wondering why you should blog. There's nothing wrong with sounding academic. In fact, being able to teach others is perhaps the best way to solidify your own understanding. At any point you use jargon, define the term! If something seems confusing or esoteric to others (via comments), answer the comments and use that to generate ideas for follow-up posts.
Can you talk about this stuff legally? Legally yes+, you're not plagiarizing any existing works since this is your own original writing. Better, you want to know what's in your school's code of conduct. It's probably not a good idea to list answers to homework problems (unless they are from a book and the book has the answers in the back). But it's good to explain the concepts as well as how you might go about solving it or thinking about it.
+ = I say this not as a lawyer, and I am not giving you legal advice
I would advise writing, writing, writing. I wouldn't worry too much about #1; a cohesive set of explanatory references and definitions goes a long way.
For #2 - I would actually suggest for #2 to focus on "explaining the papers you work through for seminars". I.e., do a public expository discussion similar to the "Present a Paper" internal seminars labs often old. Practitioners often don't get access to papers in a fresh way.
Here's three examples of excellent explanations via very different techniques:
[1] https://pomax.github.io/bezierinfo/ - Bezier curves, exhaustively technical but well-indexed and just really well explained
[2] https://directtovideo.wordpress.com/2011/02/25/ceasefire-all... - Advanced and unorthodox rendering techniques, narrative format, basically the opposite priorities of a paper (assumes you can fill in the gaps on how, details more what worked and why it's being used)
[3] http://archive.is/XjbUy (supposed to be at qntm.org/gay, but apparently being rewritten) Database normalization principles via the lens of making a database handle gay marriage, humorous
Also, if you're explaining sequential bayesian filtering by any chance (my specialty), I'd really like it if someone actually wrote down the awful formal version with the point-wise Bayes Theorem and the giant integral convolving over your state transition function, then explained how particle filters / kalman filters / hidden markov models get around how awful that is. It's how I introduce the topic at work but I don't have my slides handy out here in the real world.
I blogged for years, mainly for solidifying my own knowledge on some topics, but it was always rewarding when someone dropped a comment saying my post had helped them.
Since I started publishing on codementor, so many more people find my posts.
Re your specific questions:
1. Aim for technical walkthroughs that assume limited/no prior knowledge. Find a small project that uses the theory, and then show step by step how to build it, explaining each step in as much detail as possible. This will fill gaps in your own knowledge and help others who will be missing context that you assume is general knowledge.
2. As others have said, I wouldn't recommend copy/pasting anything, but I doubt any academic is going to come after you for plagiarising/popularising their work if you adapt and reference appropriately.
There's the old quote, attributed to various people, that you should be able to explain your research to a barmaid if you actually understand it. Having to explain it at a basic level will actually improve your own grasp.
I personally found that--in contrast to what many suggest here--I have almost no interest in explaining anything to non-specialists. Instead, my blog is mostly (or most successfully) a forum for me to work through ideas. Many times I will have a small nugget of a thought, and I will make a blog post where I model something in a Jupyter notebook. A couple of times, these have turned into papers, so that's been very helpful personally. I am also making an effort to write about topics that I don't understand, highlighting where I'm confused, as a way of getting my thoughts in order (and not all of these things may be understood by any scientists).
One consequence of ignoring explanation is that I have no regular readers (as far as I can tell; I don't use tracking scripts), and posts aren't widely read unless I promote a post by emailing it to people that then put it on twitter or facebook or whatever; I don't use those myself. This isn't directly a huge problem for me (although more positive name recognition couldn't hurt), but it might not be what you're after.
If I was in grad school now, I would use the blog as a way of making high-quality, permanent notes of things that I learned, whether they're concepts, mathematical or computational techniques, literature reviews, etc. Give attribution where appropriate and don't share homework solutions (use your best judgement on exercises and maybe change the problem sufficiently if you really want to blog your homework. Or just ask your professor...). There is a lot that I've halfway forgotten over the years and my paper notebooks haven't all survived many moves, etc., and don't have the quality that I would have put into them if I were making them public. I am starting to do what I can to make good notes in emacs org-mode when I learn new stuff or need to revisit important things in my day to day work as a researcher, but it's tough. (The format of good digital note-taking isn't important; the practice is.) Grad school is basically about this, so making good notes (ideally with some illustrative, working code where appropriate) will pay dividends in your later work.
Good luck!
1. "I'd like to write to help understand how deep my understanding of the subject" -- You need to find the frequency you need to tune in so that your readers find you interesting. Things that require a deep understanding might not make a good story and appeal to the mass, and vice versa.
What I learned is that despite me doing an advanced degree, I only know very little that others don't: https://twitter.com/lolmythesis
To me, when I blog, I tell a story. When I write a paper, I tell how deep my understanding is on that subject. My knowledge of the subject matter is just a catalyst, not the cause, for me to tell my story.
Don't be shy about what you know, but I think the idea is you shouldn't assume that your readers are dumber than you unless you're Peter Norvig. But there are angles that you see things that are interesting to others.
2. No person I know or follow ever publish their homework to their blog and be successful. You need to add a whole narrative on top of that to be interesting, so I doubt anyone will have a problem with it. If you're worried about the legality, you're counting the eggs before they hatch.
Every day review the article again. First review, you might find your expressions bland and enrich them. Second review you might end up realizing you skipped on an important point, etc.
When the article is ready, publish online and try not to change it afterwards. Not being able to touch the final product gives a sense of urgency and helps with focus.
Don't be afraid (in fact, I'd encourage it) to break away from the conventional way of explaining things in the area. Control theory is an area I think could gain a whole lot from contrarian pedagogs. (This is also a good test of your own understanding. If you're able to explain things you think you understand without using the conventional language and canonical examples, that's a good test that you've grokked it deeply.)
The best way to make a meaningful contribution is in response to what already exists, in a way that either contributes more information to the whole, or simplifies some piece high up the hill of research dept[1].
[1] https://distill.pub/2017/research-debt/
This applies to your understanding of whatever you're teaching. If you can't ELI5 then you probably don't know enough about whatever concept you're trying to explain - that's your cue to keep learning until you can.
Caveat: For a blog or industry audience, you don't have to "dumb down" your answers if you're using technical jargon or even equations and the like. Being able to explain something in simple terms doesn't preclude talking about minutiae or nerdy technical details.
Assuming a smart college sophomore means that they have ability to follow pretty detailed or involved reasoning but they need the groundwork of concepts and terminology explained.
Your first post is going to be bad, the second one is going to be better and so on, by the time you get to post #100 you'll have discovered your voice and created something that is unique to your personality.
Reading, in general, will also help the process; read stuff that interests you and - most importantly - don't stop.
2. I have summer project I do that's related to the class. I write about those project and the concept I'm using from the class.
Or you could make the blog all about you. Your personal journey of how some attained knowledge in the past, you were able to apply.
I do this whenever I learn something new. A new vocabulary, expression, API, programming language feature, etc. I think writing down your bite-sized microlessons is just as effective as blogging at length.
Currently I do it every day with a CLI and a browser extension that I keep close at all times.
Here is a previous Hacker News discussion about this method: https://news.ycombinator.com/item?id=16357917
For your second question, it's a matter of plagiarism. So you'll want to avoid outright copy/pasting the homework and material into your blog. However, you can state similar types of questions and provide an analysis on your answer and the steps / thought process you took to reach it.
For example, if you were taking Calculus and were asked to solve for the derivative of 2x^5 in your homework, you can instead show how to solve 7x^3 which provides the same knowledge.
I'd get this approved by somebody with authority at the university first (professor or above). Many professors re-use homework assignments, test questions, etc. You wouldn't want to get mixed up with accusations of helping other folks cheat.
What's wrong with sounding like an academic? Do you not want examples of good blogs written by academics then?
Or instead of linking to it, maybe you could recreate (instead of copying 1:1) the content (e.g. as a sketch in PowerPoint) and link/reference to your professors site/original source.
Another with funny anecdotes from the Windows world https://blogs.msdn.microsoft.com/oldnewthing/
I also like Peter Norvig's blog http://www.norvig.com/
Class material is subject to copyright unless explicitly licensed otherwise. Without a license, you need explicit permission to reproduce it except for normal academic use (critique, etc, accompanied by normal citation). This is in addition to any academic integrity agreement you signed up for by taking the class, which normally forbids sharing with others.
The knowledge in your head is yours. The words and pictures generated by your profs are theirs. Produce your own original material and you are all set.
I'm a professor. Rules may vary by jurisdiction.
All of the course material we are developing for a new four year IT, information literacy and Big History program for a Cambodian university is licensed under a twin MIT/CC license for all media (there will be a lot of video), code and text and will be downloadable from GitHub. We hope this material can be used and adapted for use anywhere. We've done this to prevent anyone from trying to make make the material proprietary and ensure it stays free, not because we were worried about what students might do with it.
I had never heard of an "academic integrity agreement" before. I just googled it and found this:
Sign a statement for every assignment, quiz or exam? WTF! An honor code that takes out the "honor" and replaces it with "legal" is no longer an honor code, it is a contract. This is the sign of a broken society.To paraphrase Monty Python, "America is a silly place, let's not go there."
I also highly recommend Steven King's book On Writing.
Since you're still learning, I'd say a StackExchange-like Q&A site or a forum might be a more appropriate venue. These typically allow you to type math and explain stuff in long-form. They also provide you a better feedback loop from peers and experts. You get to test out your ideas and integrate new ones.
I don't want to be a Debbie Downer, but I'm gonna go against the advice of most tech folks out there (and here on HN) by saying: a blog might not be the best medium at this stage of your studies.
The danger with a blog is that it stays on the Internet forever. When you're starting out on a subject, you're bound to say naive things and overestimate your own knowledge (source: been there done that).
Some of the things you say will range from the naive to the inaccurate [1]. And these will be indexed by a search engine and cached. People will stumble on your site, and if you're a good writer, your material might even get picked up and repeated. This is happening all over the data science world where every aspiring data scientist fancies having a blog, and the overall quality of data science articles in the blogosphere is abysmal at the moment. (witness the multitude of data-munging-with-Pandas and oh-look-I-just-discovered-logistic-regression articles). It's mostly just noise.
This doesn't mean I don't think there's value in writing -- on the contrary, writing helps crystallize your thoughts and forces you to grapple with gaps in your knowledge. You should definitely keep a single LaTeX file of ideas in gestation [2], without publishing them. When the time is right and when your semantic tree of the subject is more mature, you can review and release them, and chances are some of the ideas will be novel, or at the very least, thoughtful.
Many great works are created this way. Great authors don't show you how the sausage is made; they show you the polished end products. And these tend to stand out more.
TLDR; write, but don't publish until you've developed more maturity in the subject. Participate in Q&A sites/forums and test your ideas there.
[1] Unless you're careful to stay within the boundaries of established knowledge, in which case, your blog would be no different from a textbook.
[2] This is a variation of a Richard Feynman trick. Some of the most creative academics I know keep a list of their random ideas in a cache (mine's a Google Docs document named "Random Ideas"; I learned this from said academics), and mull over them (and develop them) from time to time. If one day the stars align and a missing piece of the puzzle shows up, they go back to this cache, put everything together and whip out a brilliant paper or article in no time. Everybody is impressed and thinks they're a genius, when in fact they've been thinking about the idea for a long time.
Challenging yourself to explain things quite a bit differenty than the materials you are learning from is likely to be a better experience for both you and your reader (who may well be reading the same texbooks as you anyway).
[0] https://www.amazon.com/Book-Shiatsu-Complete-Pressure-Manipu...
[1] https://xkcd.com/1133/