{"id":35273887,"url":"https://github.com/drtychai/research101","last_synced_at":"2026-04-10T10:31:24.477Z","repository":{"id":247786375,"uuid":"346063656","full_name":"drtychai/research101","owner":"drtychai","description":"General tips and advice for becoming interested in research, finding a suitable topic, and setting goals.","archived":false,"fork":false,"pushed_at":"2021-03-17T15:59:15.000Z","size":253,"stargazers_count":25,"open_issues_count":0,"forks_count":0,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-07-10T16:24:31.948Z","etag":null,"topics":["howto","research","security","thesis"],"latest_commit_sha":null,"homepage":"","language":"TeX","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/drtychai.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-03-09T16:02:58.000Z","updated_at":"2024-07-10T16:24:45.069Z","dependencies_parsed_at":"2024-07-10T16:38:27.190Z","dependency_job_id":null,"html_url":"https://github.com/drtychai/research101","commit_stats":null,"previous_names":["drtychai/research101"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/drtychai/research101","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drtychai%2Fresearch101","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drtychai%2Fresearch101/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drtychai%2Fresearch101/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drtychai%2Fresearch101/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/drtychai","download_url":"https://codeload.github.com/drtychai/research101/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drtychai%2Fresearch101/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31638375,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-10T07:40:12.752Z","status":"ssl_error","status_checked_at":"2026-04-10T07:40:11.664Z","response_time":98,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["howto","research","security","thesis"],"created_at":"2025-12-30T13:23:34.703Z","updated_at":"2026-04-10T10:31:24.465Z","avatar_url":"https://github.com/drtychai.png","language":"TeX","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Advice for New Researchers\nA.K.A. _1337SEARCH_\n\n\u003e Feynman was once asked by a Caltech faculty member to explain why spin 1/2 particles obey\nFermi-Dirac statistics. He gauged his audience perfectly and said, \"I’ll prepare a\nfreshman lecture on it.\" But a few days later he returned and said, \"You know, I couldn’t\ndo it. I couldn’t reduce it to the freshman level. That means we really don’t understand it.\"\n\n\u003ch5\u003e\n\u003ci\u003e\n  Trying to explain idea(s) to those less familiar provides an effective litmus test on a researcher's\n  understanding of the subject and the present depth of knowledge.\n\u003c/i\u003e\n\u003c/h5\u003e\n\nResearch can be made more enjoyable and productive through a little organization. For many, research\ntechniques are a product of experience rather than, unfortunately, formal training. To improve this experience,\nwe've provided several suggestions; it's the hope these suggestions ease some of the confusions faced\nwhen beginning a research project. \n\n## Table of Contents\n- [Who is Research For?](#who-is-research-for) \n  - [Novel v Applied](#novel-vs-applied)\n- [Characteristics of the Ideal Research Topic](#characteristics-of-the-ideal-research-topic) \u003csup\u003e[\u0026dagger;][ft1]\u003c/sup\u003e\n- [How Do I Find Research Ideas?](#how-do-i-find-research-ideas) \u003csup\u003e[\u0026dagger;][ft1]\u003c/sup\u003e\n  - [Active Learning](#active-learning)\n    \u003c!-- - [Research Power Hour](#research-power-hour) --\u003e\n    \u003c!-- - [A Pitfall to Avoid](#a-pitfall-to-avoid) --\u003e\n  - [Remaining Active: Exposure](#remaining-active-exposure)\n    \u003c!-- - [Remaining Active: Examples](#remaining-active-examples) --\u003e\n  - [Becoming Part of the Community](#becoming-part-of-the-community)\n  - [Developing the Germ of an Idea](#developing-the-germ-of-an-idea)\n- [The \"Project\"](#the-project) \n\n[ft1]: /#----these-sections-take-a-more-academic-approach-to-research-needless-to-say--it-presumes-significant-dedication-in-both-time-and-interest\n\u003ch6\u003e\n  \u003csup\u003e\u0026dagger;\u003c/sup\u003e\n  These sections take a more academic approach to research; needless to say,\n  it presumes significant dedication in both time and interest.\n\u003c/h6\u003e\n\n### Additions to Include\n- [ ] How to read an academic paper\n- [ ] How to write an academic paper\n- [ ] How to submit a CFP \n\n## Who is Research For?\n**EVERYONE!** No...seriously..._everyone can do it_\n\n- **Research should facilitate what the researcher(s) already enjoy!** \n- Research should be fun! It does **not** need to be arduous and/or rigorous, rather _it should always steer\n  towards interest_, ideally with a target goal - whatever that may be.  \n  \n  It can be as simple as dedicated time - time, specifically carved out of our busy lives, that\n  we can dedicate to something we (the researcher) find intellectually stimulating, e.g.,:\n  - I want to do course X, but it [_costs too must_ | _isn't being offered_ | _moves too fast_ | _would be more benificial from self-direction_ | _etc._]\n  - I see gap Y in field A, I think I can [_fill it_ | _contribute to it_ | _learn why it is a gap_ | _learn how to teach others about the gap_ | _etc._]\n  - I want to pwn this thing, but need/want [_dedicated time_ | _a pwnpartner_ | _hardware-software resources_ | _etc._]\n  \nBeing a good research involves more than \"merely\" positing brilliant ideas and implementing them. Most researchers spend\nthe majority of their time reading papers, listening to talks, discussing ideas with others, writing and revising papers,\nstaring blankly into space - and, of course, having brilliant ideas and implementing them.\n\n### Novel vs Applied\nIf you have an interest it it, you can research it. The only limits are those self-ascribed. For sake of\nexplaination, we've chosen to divide the topic into applied research and novel research\u003csup\u003e[\u0026dagger;\u0026dagger;][ft2]\u003c/sup\u003e. \n\n**Applied Research:** _I want to gain/share/discover knowledge_\n- May rely on cutting edge publications\n- Often involves more active work by the researcher in both _experimentation_ and _investigation_, e.g.: \n  - git[hub/lab] repo scraping \n  - targeted web searches, specific to a [sub]domain, timeline, application, and other targeted web searches (use more than one search engine)\n  - reverse engineering a closed-source technology\n\n**Novel Research:** _I want to create/contribute/posit this new knowledge_\n- Often rely more on cutting edge journals and publications\n- Ideas, initally, tend to be more _speculative_ and difficult to explain\n\n[ft2]: /#----note-neither-form-of-research-is-better-than-the-other-they-are-simply-different-approaches-with-their-own-brilliant-ideas\n\u003ch6\u003e\n  \u003csup\u003e\u0026dagger;\u0026dagger;\u003c/sup\u003e\n  Note: Neither form of research is \u003ci\u003ebetter\u003c/i\u003e than the other. They are simply different approaches, with their own brilliant ideas\n\u003c/h6\u003e\n\n## Characteristics of the Ideal Research Topic\nThe characteristics of an ideal topic are, to some extent, incompatible:\n\n- **The subject should be timely.**\n  Previous groundwork should leave your research problem ripe for completion,\n  and it should be in an active area with potential for future work and\n  employment.\n        \n  On the other hand, if a field is too crowded, and the subject too prominent,\n  then you risk being \"scooped\" by a more experienced researcher who is\n  able to work faster than you. In this case, you may be forced to start over\n  again (rather disastrous) or at least publish jointly (possibly a blessing,\n  but surely an inconvenience).\n\n\n- **Your work should lead to a well-defined set of results to which you can lay claim.**\n  In particular, career prospects will be lessoned if you merely\n  contribute a small piece of a very large project, a piece of software which\n  is closely identified with a project, or is published with a long list of\n  collaborators.\n \n  On the other hand, it is impossible to work in a vacuum, and your task\n  can be significantly harder if you don't have a group of people working on\n  closely related problems with whom you can interact and share code.\n\n\n- **The best topics show a high level of creativity -- and are often somewhat speculative.**\n  It is often unclear at first how the ideas will develop.\n\n  On the other hand, a multiyear plan of research is a very valuable asset.\n\n\n- **You should really enjoy the subject, and want to spend the next several\n  weeks/months/years with it!**\n      \n  On the other hand, an ideal project in a foreign subject is of no use without\n  someone(s) who is willing to direct you in it.\n  \n_Clearly some compromise is necessary here!_\n\n## How Do I Find Research Ideas?\n### Active Learning\nIt's very important to make the transition from the passive mode of learning\nthat traditional lecture courses encourage to an active, and critical, learning style.\n\nWhenever you read technical material, evaluate a piece of software, or listen to\na research talk, ask yourself these canonical questions:\n\n- From where did the author seem to draw the ideas?\n- What exactly was accomplished by this piece of work?\n- How does it seem to relate to other work in the field?\n- What would be the reasonable next step to build upon this work?\n- What questions are left unanswered?\n- What are the important references cited by this work?\n- What ideas from related fields might be brought to bear upon this subject?\n- Can the results be generalized?\n\nOne technique that some find helpful is to keep a written log of your technical\nreading and listening. Review it periodically to see if some of the ideas begin\nto fit together.\n\nSimilarly, keep a sheaf of small projects on paper. These are one or two pages of\nformally presented ideas on a single subject. When ideas are not allowed to get out\nand wander about they become malformed and misaligned. These writeups keep the pencil\nsharp and serve to organize spontaneous ideas. Having these available at a moment’s\nnotice pays off when one begins to seriously look for research projects.\n\n#### Research Power Hour\nA “journal club” provides an excuse for engineers to meet [bi-]weekly to discuss papers. Focus\ncould be on a topic (e.g., _“The Month of Garbage Collection”_), but allow for digression when\na common interest develops.\n\n#### A Pitfall to Avoid\nIt is possible to spend almost all of your time in literature review and seminars.\nIt is easy to convince yourself that by doing this you are working hard and\naccomplishing something. _The truth of the matter is that nothing will come of\nit unless you're an active reader and listener, and unless you assign yourself\ntime to develop your own ideas, too._ It is impossible to \"finish a literature\nreview and then start research.\" New literature is always appearing, and as\nyour depth and breadth increases, you will continually see new connections and\nrelated areas that must be studied.\n\nActive listening and reading must be viewed as education that will involve you\nfor the rest of your career. **Don't fool yourself into thinking it must be finished\nbefore you can begin research.**\n\n\n### Remaining Active: Exposure\nEven after you have decided on your initial focus, it is important to continue a\nroutine of reading new journals, technical reports, and attending seminars/conferences/workshops.\n\nSet aside some time every week/month for trying to generate research ideas or improving on\nexisiting ideas. Finding and reading related work is the foundation of good research. If you're\nnew to the field, you may only be familiar with buzzwords and/or material presented in textbooks.\n\nSome important initial resources for finding pertinent references are:\n- [The Association for Computing Machinery (ACM) Digital Library (DL)][acm-dl]\n- [The Computing Research Association (CRA)][cra]\n- [The arXiv Computing Research Repository (CoRR)][corr]\n- Github/Gitlab, [Phrack][phrack], [PagedOut!][pagedout]\n- [DEF CON Media Server][dc-media]\n- [CCC Media Server][ccc-media]\n\nInitially, you'll start with a short list of foundation talks and readings. As a researcher, you are\nresponsible for developing a bibliography of related works, and for finding future readings. You'll be surprised\nhow many useful references you'll find that others have missed.\n\nIf there's a mailing list, subscribe to it. Trying to pwn something as part of the research? **Subscribe to the\ndeveloper mailing list.** All of these sources can contribute to the development of your idea and progression of\nyour research.\n\nAt this stage, you can add one question to the canonical list: _How can these ideas help me solve my research problem?_\n\n[acm-dl]: https://libraries.acm.org/digital-library\n[cra]: https://cra.org/resources/\n[corr]: https://arxiv.org/corr\n[phrack]: http://phrack.org/\n[pagedout]: https://pagedout.institute/\n[dc-media]: https://media.defcon.org/\n[ccc-media]: https://media.ccc.de/\n\n#### Remaining Active: Examples\nStruggling with remaining active? Try one (or more) of these catalysts:\n- Make a monthly investigation to read, at least, the recent abstracts from a given journal. Choose an article\n  or two to read in-depth and critique.\n- Make a weekly investigation to find technical talks/videos in your field. View selectively and critique.\n- Pick a random conference (DEFCON/BH/CCC/etc.) talk or series. Listen and critique.\n- Search common code repository sites for keywords relevant to the research. Learn from and/or contribute\n  to any that you find. Critique it's approach.\n\nAdd these to your log, and ask the canonical questions. As you review the log six months from\nnow, you may find something that stroke a chord then, but is beyond you now. \n\n\n### Becoming Part of the Community\nOne of the most imporants things a researcher should do, for both themselves and their\nwork, is establish themselves as part of the research community:\n\n**Join a community:** Local IRL or online (slack/discord/zulip/etc) communities provides a researcher,\nespecially a security researcher, an informal and casual settings to learn, teach, and bounce ideas.\n_This is especially import for researchers new to the field._\n\n**Attend conferences/workshops:** Conferences and workshops are the best place to meet people,\ndiscuss your ideas, hear new ideas, and get a sense for the current state of research in a field.\n\n**Publish papers:** Publishing papers provides a researcher with a source of feedback, establishes\nthemselves member of research community, and forces the researcher to clarify the ideas presented\nand to fit them into the context of the current state of research.\n\n**Deliver talks:** Talks are a great way gain visibility, share your ideas, and hear\nthem out-loud. Submit to CFPs at the next conference; lesser-known conferences\nprovide the ideal 'low-pressure' environment for a new speaker. That does not\nmean DEFCON/CCC/BH/etc. are beyond reach; they are quite achievable!\n\n**Networking:** Breaking into the research community requires meeting and building relationships\nwith other researchers. Talk about your research interests every chance you get (but make sure\nto spend time _listening_, too - this is when you'll learn the most)\n\n### Developing the Germ of an Idea\nOnce you have identified a topic that looks feasible, make sure you are aware of\nall of the literature in the area. Keep reading and listening, and keep distinct\nin your mind what the goal is of your work.\n\nDon't let other people's frame of mind limit your creativity. Make a list of open problems and\npossible projects that are of interest to you and discuss them with friends, collegeues, and\nany other interested party.\n\n## The Project\nResearch in computer science often leads to a “project” involving programming. It's\nimportant to remember that programming is not computer science research. Instead, for\nmost computer scientists, programming is merely a mechanism for performing an experiement.\nAs with any experiment, it should be carefully planned, ahead of time:\n\n- **Establish goals.** Know where you are headed, and approach the solution without\n  distraction. Develop a list of milestones which demonstrate progress, and strive to\n  accomplish them. If you cannot formulate concise goals, you should stop and reconsider the\n  motivations for the project.\n\n  Goals should be \"justified\" regularly. As your knowledge and understanding improve, so may\n  your ideas and motivations. Dynamic goals provide flexibility as you undergo research; _don't\n  be afraid to scrap a goal in favour of another._ \n\n- **Think simple.** Design your projects so that they may be completed within a reasonable\n  period of time. An experienced programmer generates little more than a hundred lines of\n  reliable code per month. A project that demands thousands of lines of code, therefore, will\n  take more than a couple of two-week blocks to implement correctly. Time spent pruning the\n  experiment to a manageable size is time well spent. Large projects do not necessarily yield\n  large results.\n\n- **Build prototypes.** Most projects benefit from the construction of a prototype. A well\n  considered prototype validates assumptions, tests the value of abstractions, and motivates\n  reconsideration of weak ideas. While there is little research value associated with polishing\n  off a “product,” many research questions can be answered satisfactorily through mock-ups\n  or partial implementations.\n\n- **Use tools.** A programmer’s performance is dramatically improved through the use of a\n  few simple tools. There are, of course, many important and useful tools, but the main point\n  is clear: _the correct choice of tools can reduce the total work in a project._ Find them,\n  learn from them, and use them.\n\n- **Collaborate.** When resources can be coordinated, groups are often more productive than\n  individual efforts in isolation. For many, success comes from collaboration. Try to share\n  and develop ideas in a group atmosphere. Contact others that share your interestes and\n  collaborate! Undoubtedly they will have solved problems you are currently considering, and their\n  solutions will influence how you achieve common goals.\n\n  _One side effect of collaboration is increased discipline, discipline that is necessary to reduce\n  the amount of energy expended synchronizing efforts._ Some tips for collaboration:\n  - Keep a regular schedule of meetings\n  - Establish points of synchronization where concentration is refocused on an issue\n  - Consider critisim carefully; conversely, provide others only with _constructive_ critisim \n\n- **Document results.** Finished projects should be documented. At a minimum, a technical\n  overview of the experiment allows others to see what motivates your research. The\n  document should describe the problem, your assumptions, your approach, and an honest\n  evaluation of your results. When documenting software, include illustrative examples,\n  tutorials, and any experience gained from its use. Well written documentation greatly\n  increases the impact of a project.\n\n  _It's vital to reserve a good portion of time for writing._ An hour spent writing is an hour spent\n  considering a problem instead of, say, grappling with a computer. You must spend time away from\n  other distractions to document work and focus your efforts.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdrtychai%2Fresearch101","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdrtychai%2Fresearch101","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdrtychai%2Fresearch101/lists"}