Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: How to blog things I've learnt in graduate school?
213 points by jamesecurry on May 30, 2018 | hide | past | favorite | 51 comments
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!




Think about the standpoint from which you would speak. I suggest you NOT try to write from the standpoint of someone who understands the subject and wants to explain some point clearly and accurately.

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.


> 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. 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.


I'd like to second this suggestion. You will find, or have likely already found, that a lot of the writing you do (class assignments, papers, thesis, etc) will focus primarily on the successes and be written in that expert POV. Documenting the journey is useful for your own records and is a great service if made publicly available. It's also an opportunity to reflect not just the technical topic at hand, but on your personal experience with it.


1) Just write. You'll find your own voice. I'd worry less about whether you sound academic or not and more about whether you sound like yourself.

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.


#1 brings to mind a James Gleick tweet I saw this morning that struck a chord:

> “The pen is an instrument of discovery rather than just a recording implement.” —Billy Collins

https://twitter.com/JamesGleick/status/1001835227105423360


Always this. Just write. Find a sample unit of your target audience, and ask them to read your posts and give you feedback (what was hard to follow, boring, interesting, too much background, too little, etc) and iterate.

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.


I second this -- actually writing is critical to finding and refining your voice. That, and actively soliciting feedback. Submit your posts to the relevant subreddits and HN, and don't shy away from constructive negative feedback.


Or ask people you know to read drafts for tone and voice.


Not a blog, but this YouTube Channel called Real Engineering might fit the criteria for your first question:

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.


Also YT channel 3blue1brown


William Zinsser's On Writing Well, about writing non-fiction articles, has a lot of examples of people (including scientists) writing beautifully about complex topics, and talks about style, audience, your voice etc. It's a very inspiring book.

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.


Yeah Julia Evans' is a great example of some who explores topics in a cool original way. Love her zines.


The entire point of academia is to spread knowledge.

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.


When I was in grad school I made these to explain concepts from traffic theory:

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're asking the wrong question. The how is easy: build a blog (trivial) and write down the things you've learned. Maybe add some pictures, diagrams, or code.

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


Matt Might does excellent academic blogging. So does RJ Lipton and, to some extent, Terence Tao (although his is for a specialist audience).

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.


For #1, try to explain it to a friend, preferably in person, possibly via a chat app, but definitely not via email. Then base your writing on the way you explained that. (But like, with complete sentences.) This is the best method I know for shaking off the instinct to sound like other people's writing (i.e: like technical papers) instead of just explaining things.

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 would highly recommend posting on somewhere like codementor. They provide the platform but publish your work under creative commons so you remain the owner.

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.


An idea: Take a topic that catches your interest, and explain it to a non-specialist or even non-engineer. I happen to enjoy blogs like that when they are well written. If a simulation is possible, share some code.

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've been doing academic-type blogging since I was halfway through my PhD; it's been about 7 years now, and I continue as a non-academic scientist. My main advice is, as many others have said, to just write. Keep at it, and you'll figure out the rest as time comes. Try to bang out a post a week at minimum and things will fall in line.

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!


I am a grad student and writing and maintaining a blog has done me wonders over the years. So:

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.


Reading what you wrote is a great teacher. You don't need to publish to do that. Make a review queue, put the article online but don't publish it.

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.


There is good advice here already, but here's another one: dive deep (or as deep as you have time for) in the existing control systems blogosphere, and try to fill the void/niche you see is lacking. Maybe there are techniques no-one is talking about (in an informal manner), maybe there are trade-secrets that are only mentioned amongst professionals but rarely in textbooks or in papers that you could share, or maybe you have a unique insight or intuition about concepts in the field.

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/


I wrote a book on Technical Blogging (https://pragprog.com/book/actb/technical-blogging) specifically aimed at programmers and technical people like you. You might find it useful. Also, feel free to email me directly (info@antoniocangiano.com) if you'd like to discuss your blog specifically.


ELI5 with simple examples. Something like that. If you can't ELI5 the material then pick a lowest level higher than that that you can. The best scientists can explain their work and why it is important to a wide range of audiences. So the key is to give the context and why it's important and then how what you've learnt applies.


VERY complex systems and concepts can be explained to anyone via analogies to things they already understand. Bang-bang logic is easy to explain and understand. PID is hard, but you can equate it to something like balancing on one foot and it gets easier. Break SCADA down into digestible chunks and it's not impossible to explain it to your 90-year-old grandmother.

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.


For technical topics I often envision a smart college sophomore who might be considering a major in which your topic resides. With this I can assume a pretty decent general education but little or no domain knowledge.

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.


The best way to learn to write is to just write.

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.


1. Pick a topic you enjoy in your class and write about it. When you write about it choose a style you like to write in.

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.


Hey. Apologies that this is off-topic. But I've been interested, broadly speaking, in the kinds of questions Control Theory has to ask. I want to do a masters in something, and there's a few Control Theory programs that have caught my eye. There are also a few 'Complex Systems' and 'Dynamical Systems' programs that seem interesting. Unfortunately, I don't have anyone I can reach out to figure out what's bogus and what's not. There's contact info in my bio, if you had a second to reach out and answer a few questions it would be greatly appreciated.


This is one possible route - whichever topic or doubt you end up searching the internet for, make a small post about the solution. As you grow over time, start being more comprehensive about the solutions, and try to list information on the very niche topic till the periphery of human knowledge( from history of birth to bleeding edge tech in that area). Growing more over time you will start getting in-depth and at a zen blogger stage, cross-domain.

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.


> document/write the things I'm learning

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


Disclaimer: I'm not a lawyer.

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.


Thank You so much for This question. I Want to start a blog about my grad school learnings as well. I found available online resources for some topics somewhat lacking and hoped I could fill the breach. But I never dared to pose as an expert on the topics, since most of my knowldege comes from the lectuters and associated materials. The awnsers to your question really helped me out!


> 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?

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.


> without sounding like an academician

What's wrong with sounding like an academic? Do you not want examples of good blogs written by academics then?


Hey jamesecurry! I'm actually just starting to do the EXACT same thing! Blogging about controls and ML, more specifically for autonomous aircraft/rotorcraft; I'm halfway into my M.S program. We should discuss more outside of HN!


Regarding 2: Speak with your professors about that. If they already publish a lot of that material on their sites, you can at least link to it. Ask if they'll let you include it directly (images, quotes) and so on.


> Speak with your professors about that.

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.


As others have recommended, wear a pair of Nikes and just do it. For some inspiration, here is a good technical writing blog (a Microsoft dev analyzing various algorithms, apparently as part of his phd preparation): https://blogs.msdn.microsoft.com/devdev/

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/


> 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?

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.


This just makes me sad. When class material, which is supposed to be the antithesis of closed and proprietary is treated as property, then there is something very wrong with the educational system you are working in. Education is about spreading knowledge as far and wide as possible, not controlling it.

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:

  "Some schools have created an honor code -- a school-wide 
  agreement about ethical behavior -- that parents sign in 
  September and students sign each time they turn in an 
  assignment, quiz or exam."  
  -- https://www.edutopia.org/blog/academic-integrity-cheat-or-be-cheated-denise-pope
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 think you're misinterpreting the point of the parent post. The point isn't to prevent free flow of information, it's to prevent plagiarism. Usually, at least in computer science, course materials, lecture notes, and research papers are freely available on webpages. The other side of the coin from making information widely available is that proper attribution and credit becomes very important culturally. There's no good purpose to be served by copying and pasting something that's freely available when you can just link to it instead.


Professors owning their own material is an ancient tradition. If they did not, they wouldn’t be able to MIT license it.


If you haven't already, I would read Strunk and White and apply those lessons to your writing.

I also highly recommend Steven King's book On Writing.


For 1, take a look at this guy's blog: http://colah.github.io


Nobody ever got better at writing by not writing.


I have graduate degrees in optimal control. Here's my two cents worth.

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.


Imagine your talking to a technologically knowledgeable friend from a different field, and write what you would say..


Personally, I think much of what makes the best explanations great is not the writing as much as charts and illustrations and other supplementary materials that make it easier to understand how things go together. While not technical or a blog, I like The Book of Shiatsu by Paul Lundberg as a great example of this due to the art style really helping with the explanation (you can get an idea from the Amazon preview (towards the end)[0]). I've seen one or two CS blogs that are good like that too but I don't have any links handy. Exactly how that would look depends on what you would like to create, I'm just suggesting that giving some thought to the artistic style of presentation can really draw people in and clarify things. Even if you aren't an artist, picking what to put in charts and tables or what code snippets to include can make a huge difference in presentation and even minor stylistic touches can make your explanation easier to remember (also complete and accurate explanations of the supplementary materials are extremely valuable and often overlooked even when a helpful illustration is given). Even things like taking pictures of your notes on paper or screenshots of whatever tools you use can add a more personal touch and give your readers something not found in the textbook (sometimes really mundane stuff turns out to be the most helpful). Or since you are interested in machine learning, maybe put that to work to create a unique style. Of course, you also need to decide how much time to spend on it and I don't mean figure out the best thing right away, just give thought to things other than text as you go. Some dramatic text styles can be helpful and fun too (like up goerizing[1]).

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/


Quora seems to be a popular venue lately.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: