Kent Yang
    • Create new note
    • Create a note from template
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Write
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
    • Invite by email
      Invitee

      This note has no invitees

    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Note Insights New
    • Engagement control
    • Make a copy
    • Transfer ownership
    • Delete this note
    • Save as template
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Note Insights Versions and GitHub Sync Sharing URL Create Help
Create Create new note Create a note from template
Menu
Options
Engagement control Make a copy Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Write
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
  • Invite by email
    Invitee

    This note has no invitees

  • Publish Note

    Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

    Your note will be visible on your profile and discoverable by anyone.
    Your note is now live.
    This note is visible on your profile and discoverable online.
    Everyone on the web can find and read all notes of this public team.
    See published notes
    Unpublish note
    Please check the box to agree to the Community Guidelines.
    View profile
    Engagement control
    Commenting
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    • Everyone
    Suggest edit
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    Emoji Reply
    Enable
    Import from Dropbox Google Drive Gist Clipboard
       Owned this note    Owned this note      
    Published Linked with GitHub
    1
    • Any changes
      Be notified of any changes
    • Mention me
      Be notified of mention me
    • Unsubscribe
    --- title: 【AC AMA共筆】當開發者遇到使用者 HackMD的新創故事 --- # AMA共筆: 當開發者遇到使用者,HackMD的新創故事 ![](https://i.imgur.com/56CSGGn.jpg) ALPHA Camp榮幸邀請到知名協作平台「 HackMD」的共同創辦人 Max,請他來聊聊打造 HackMD 的產品開發心得、創業挑戰、在國外新創加速器 Techstars 學到了什麼? [歡迎在FB粉專分享心得抽贈書!](https://www.facebook.com/alphacamp.tw/posts/2905505132795287) 想得到[這本書:It Doesn't Have to Be Crazy at Work](https://basecamp.com/books/calm)可以去留言分享心得! [HackMD 快速入門教學](https://hackmd.io/s/quick-start-tw) ### AMA議程 1. Max個人介紹 2. HackMD 的誕生 3. HackMD 的技術挑戰 4. 從寫 code 到打造產品 5. 從國外加速器學到的 6. 對 HackMD 的願景 7. Q&A ### Max個人介紹 臺北科技大學資工系學、碩士 UXTesting intern ### HackMD的誕生 技術討論研討會 COSCUP official conference筆記 60%的開發者每天寫code時間少於4小時,其他時間都在「與人溝通」 HackMD解決的問題:為工程師而生的協作平台,以Markdown語法格式化文字 Markdown約十幾年前才從email開始流行(比html語法簡易),延伸成文件工具 流程圖、演算法可以更容易理解,可以追蹤搜尋 軟體工程師需要寫文件、開會、Brainstorm,常需要協調未來東西要寫什麼東西 針對開發者的文件溝通 MAU 333,000 團隊:6人,過去以遠端協作為主 前後端拆開,但設計上是全部一起評估,團隊很小不能只懂某部分,都還是全端工程師 從Hackpad創意發想(2015春節前),但不用工具列調格式 學校專案→OpenSource→跟Github貢獻者組TEAM 在期末報告首次發表,交出成品來教授被嚇到拿了99分🙀🙀🙀 先開源(open source)給大家用,放在Heroku上,有一些路人來用,非常熱門有5K星星 對其他人也是實用的,慢慢有一群contributor就組成團隊, 整個產品演化至今大概4年多,目前有二萬多行程式碼 [【HackMD GitHub連結】](https://github.com/hackmdio/codimd) **Tech Stack**(使用工具) ![](https://i.imgur.com/xEQIobG.jpg) - 前端:jQuery(=>React) + Bootstrap - 後端:Express.js + mongodb(=>PostgreSQL) 說明: SENTRY如果錯了會主動打給他 近兩年才開始用React(Component 的思維,可以不斷的重複利用),慢慢淘汰jQuery,做產品要慢慢migrate使用者 ### HackMD的技術挑戰 #### HackMD如何達成real-time update WebSocket(建立client, server雙方連線) 當real time延時小於16毫秒就感覺不出差別 #### 多人協作如何處理conflict operational transformation(OT) Google Docs前身,平行運算 1. 要當工程師英文至少要有一定的閱讀能力 2. 做好的產品,要有使用者同理心 3. 要自己研究學習,找到solution(如何Google) ### 從寫code到打造產品 最初原型(主要功能)與現今版本差別不大,重點在於一直解決新問題 #### 工程師打造產品的盲點 有些技術很炫,但產品是在解決使用者的問題,沒有解決問題就不是個好產品 > "Make something people want." by YC #### 怎麼跟使用者接觸 - 沒有問會不知道:訪談、發問卷 - 在HackMD網站直接可以問問題,串進Slack - Slack小工具:Smallchat ##### 產品思維 不要直接問使用者你想要什麼(這真的超重要)! ### 從國外加速器Techstars學到的 巴黎分部,3個月program,最後一天發表產品 申請要面試,email創業故事錄影片,business plan(不是重點) 重要的是跟團隊本身創始人學習,ideas也不見得重要 市場產品定位討論 見到100個 (Mentor? 各行各業都有,如做衣服的) Program中間可以換題目,創業成功和失敗重點是人(團隊合作) 收斂idea 第三個月準備demo day pitch(實際寫code只有一個多月) 溝通說好故事要花一個月時間,10-12隊,大家互相幫忙,團隊性質不同感情很好 Techstars: “Give First” 新創要成功需要很多人幫,形成文化圈會互相幫助,大家都有一口飯吃,把餅做大 不要怕競爭:可以做朋友,一起把市場分了,交朋友不見得與競爭牴觸 ### HackMD的願景 - 怎麼賺錢(pro、team方案) ![](https://i.imgur.com/yQwnfPs.png) - 建立Developer Documentation Community(如GitHub) =>評估要不要使用專案,會先看readme,有清楚documentary會非常有幫助 ### Q&A #### 全職投入的契機,沒錢沒收入,怎麼找夥伴堅持至今? 自己要 all in,靠熱情找到夥伴,別人會被感染,相信產品會有可看性 一開始很辛苦,大家(每週)remote,找朋友討論下期目標是什麼,每次溝通之後的目標 一年 我們產品到了XX高度,要別人或你all in 來找錢 - 溝通點放在公司產品階段、成長跟願景 #### 過去做過什麼其他project,為什麼沒繼續? 在學與同儕曾做過幾個,如搜尋裁判書系統,因不是律師出身,對"know how"不熟不知道行業痛點,而沒持續開發 - 要解決自己會有的問題、用自己會用的工具! #### 要當一個開發者,需要什麼條件或特質? 追根究柢、願意動手 渴望解決問題,打磨產品到最好 是不是本科系不重要,想不想做的問題而已 - 軟體是不斷迭代的過程,要有熱情! #### 要怎麼擴展使用圈? 主要客群(TA)是工程師沒錯,但各式各樣的用戶也都有 跟軟體工程相關職業,像是PM、設計師、Marketing - 解決使用者問題,是工程師的主要課題 一直的策略都是organic,跟平常的workflow合在一起 #### 新的收費模式,有什麼新功能? 團隊方案:群組擁有文件,筆記拉給群組分享 管理不同權限,管理圖片上傳,通知中心 免費版功能仍維持 #### Ernesto Fang: 1. 我這邊想知道一開始做HackMD是有先估算這個產品的市場價值嗎?是確定有其市場才去做? 2. 承一,如果是有先估算其市場價值,那請問你們當初是怎麼估算的?例如:open source的code超過一定的使用量? 3. 另外請問你們在競爭者方面也有先做分析嗎? ##### 有評估市場價值嗎? 商業模式分析 Make something I want 一開始不知道市場多大,先launch給大家使用,再做使用者調查 競品分析一直都在做,類似的很多一開始以為是個藍海 其他對工程師應用場景比較薄弱 #### akalanning: - 有點好奇,國外高手如雲,為什麼沒有人想做出同樣概念的東西呢? 或許有人有做類似的,但怎麼執行會有巨大差別,mindset knowhow角度跟別人不同 不停聽客戶意見,讓自己的產品在軌道上 只有一個問題:是產品不夠好 #### 鈺鈞 邱: - 有沒有發展到跟教育上相關的應用? 如Codepath,寫教材給同學,聽課的人課堂上應用情境、知識庫 校長:AC學習平台也有用markdown ## Dream Big 解決自己的問題開始,踏出第一步 把夢想想大一點,一步步build到那邊 視野是你自己的瓶頸,你對他的想像跟信心 ## (工商時間) - 團隊協作方案 US $5 - 今年課程皆滿額,明年歡迎報名學技能、做產品、來轉職! [學期一 程式設計入門 12月班 12/2開課](https://tw.alphacamp.co/intro-module) - [歡迎在FB粉專分享心得抽贈書!](https://www.facebook.com/alphacamp.tw/posts/2905505132795287) 想得到[這本書:It Doesn't Have to Be Crazy at Work](https://basecamp.com/books/calm)可以去留言! (20:50結束)

    Import from clipboard

    Paste your markdown or webpage here...

    Advanced permission required

    Your current role can only read. Ask the system administrator to acquire write and comment permission.

    This team is disabled

    Sorry, this team is disabled. You can't edit this note.

    This note is locked

    Sorry, only owner can edit this note.

    Reach the limit

    Sorry, you've reached the max length this note can be.
    Please reduce the content or divide it to more notes, thank you!

    Import from Gist

    Import from Snippet

    or

    Export to Snippet

    Are you sure?

    Do you really want to delete this note?
    All users will lose their connection.

    Create a note from template

    Create a note from template

    Oops...
    This template has been removed or transferred.
    Upgrade
    All
    • All
    • Team
    No template.

    Create a template

    Upgrade

    Delete template

    Do you really want to delete this template?
    Turn this template into a regular note and keep its content, versions, and comments.

    This page need refresh

    You have an incompatible client version.
    Refresh to update.
    New version available!
    See releases notes here
    Refresh to enjoy new features.
    Your user state has changed.
    Refresh to load new user state.

    Sign in

    Forgot password

    or

    By clicking below, you agree to our terms of service.

    Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in with Wallet
    Wallet ( )
    Connect another wallet

    New to HackMD? Sign up

    Help

    • English
    • 中文
    • Français
    • Deutsch
    • 日本語
    • Español
    • Català
    • Ελληνικά
    • Português
    • italiano
    • Türkçe
    • Русский
    • Nederlands
    • hrvatski jezik
    • język polski
    • Українська
    • हिन्दी
    • svenska
    • Esperanto
    • dansk

    Documents

    Help & Tutorial

    How to use Book mode

    Slide Example

    API Docs

    Edit in VSCode

    Install browser extension

    Contacts

    Feedback

    Discord

    Send us email

    Resources

    Releases

    Pricing

    Blog

    Policy

    Terms

    Privacy

    Cheatsheet

    Syntax Example Reference
    # Header Header 基本排版
    - Unordered List
    • Unordered List
    1. Ordered List
    1. Ordered List
    - [ ] Todo List
    • Todo List
    > Blockquote
    Blockquote
    **Bold font** Bold font
    *Italics font* Italics font
    ~~Strikethrough~~ Strikethrough
    19^th^ 19th
    H~2~O H2O
    ++Inserted text++ Inserted text
    ==Marked text== Marked text
    [link text](https:// "title") Link
    ![image alt](https:// "title") Image
    `Code` Code 在筆記中貼入程式碼
    ```javascript
    var i = 0;
    ```
    var i = 0;
    :smile: :smile: Emoji list
    {%youtube youtube_id %} Externals
    $L^aT_eX$ LaTeX
    :::info
    This is a alert area.
    :::

    This is a alert area.

    Versions and GitHub Sync
    Get Full History Access

    • Edit version name
    • Delete

    revision author avatar     named on  

    More Less

    Note content is identical to the latest version.
    Compare
      Choose a version
      No search result
      Version not found
    Sign in to link this note to GitHub
    Learn more
    This note is not linked with GitHub
     

    Feedback

    Submission failed, please try again

    Thanks for your support.

    On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

    Please give us some advice and help us improve HackMD.

     

    Thanks for your feedback

    Remove version name

    Do you want to remove this version name and description?

    Transfer ownership

    Transfer to
      Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

        Link with GitHub

        Please authorize HackMD on GitHub
        • Please sign in to GitHub and install the HackMD app on your GitHub repo.
        • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
        Learn more  Sign in to GitHub

        Push the note to GitHub Push to GitHub Pull a file from GitHub

          Authorize again
         

        Choose which file to push to

        Select repo
        Refresh Authorize more repos
        Select branch
        Select file
        Select branch
        Choose version(s) to push
        • Save a new version and push
        • Choose from existing versions
        Include title and tags
        Available push count

        Pull from GitHub

         
        File from GitHub
        File from HackMD

        GitHub Link Settings

        File linked

        Linked by
        File path
        Last synced branch
        Available push count

        Danger Zone

        Unlink
        You will no longer receive notification when GitHub file changes after unlink.

        Syncing

        Push failed

        Push successfully