keancode / keancode.github.io

KeanCode
4 stars 4 forks source link

Re-Struct Article #8

Open neizod opened 11 years ago

neizod commented 11 years ago

เนื่องจากก่อนหน้านี้ เว็บเราขอ post เนื้อหาไปบน Blognone ทำให้แต่ละตอนๆ ควรเขียนให้สั้น (อ่านจบได้ใน 5 นาที/ตอน) แต่เน้นเขียนถี่ๆ แทน เพื่อปั้มจำนวน visit, page view

ตอนนี้เราอยู่ตัวแล้วกับชื่อเว็บที่พอคุ้นหูบ้าง -- ถึงแม้ traffic ส่วนใหญ่จะมาจาก Blognone เวลาเขียนเรื่องนั้นๆ ก็จริง แต่ก็มีจาก search และการบอกเล่าปากต่อปากไม่น้อยนะ (Yannix เคยแนะนำเว็บเก่าเรา บนหน้า jobs ด้วย)

เนื่องจากเราย้ายระบบเว็บแล้ว ตอนนี้ visit, page view จึง (ยัง) ไม่สำคัญ (เหมือนก่อน) เลยคิดว่าจะกลับไปอ่านบทความที่ได้เขียนๆ เอาไว้ แล้วจับรวบมาเป็นอันเดียวกันให้อ่านง่ายขึ้น เพราะ

  1. เนื้อหาต่อตอนมันแปลกๆ ดูอย่าง Python ที่ตอนนี้มี post มากกว่า 30 อัน แต่หลายๆ อันสามารถจับรวมกันเป็นตอนเดียวแล้วอธิบายได้ง่ายกว่า (เช่น ตอนที่แนะนำ str กับสอนใช้ str แบบยากๆ) ส่วนบางตอนเมื่อแยกกันจะทำให้ลงรายละเอียดได้ดีกว่า (เช่นตอนแนะนำ decimal กับ fractions)
  2. ตอนนี้ไม่มี hard deadline ของการส่งบทความแล้ว อย่างเมื่อก่อนตอนเขียนแนะนำ math กับ random นี่บางอันยังไม่เคยใช้ ไม่เข้าใจอย่างถ่องแท้เลย แต่ต้องรีบเขียนให้เสร็จ เลยแนะนำแค่ผิวเผิน -- ตอนนี้เริ่มต้นอาจจะเขียนแนะนำสั้นๆ ไปก่อน พอใช้งานบ่อยจนเข้าใจค่อยมาเขียนเพิ่มก็ได้
  3. ระบบ theme ของ Jekyll มันทำให้รู้สึกอยากเขียน post เนื้อหาหลักๆ ไว้อันนึง แล้วค่อยเพิ่มเติมรายละเอียดต่างๆ ลงไปภายใต้ <h2>, <h3> (ตัวอย่าง)

ส่วนหน้าตาของ post แบบใหม่ เท่าที่คิดไว้ก็ประมาณ

  1. อารัมภบทเกี่ยวกับตัวภาษา
    • ประวัติ
    • ติดตั้งโปรแกรม
    • hello world!
    • comment, agreement, coding convention & style
    • error และ debug ง่ายๆ (เช่น print_r, var_dump ใน php, php -a สำหรับเรียก interactive shell มา test code ง่ายๆ)
    • หมายเหตุ: ตอนนี้ต้องตั้งชื่อว่า yyyy-mm-dd-index.md เท่านั้น ไม่งั้นเดี๋ยวไม่มี landing page ของ category นั้นๆ
  2. basic datatype and operations
    • numbers (int, float พอ พวก bignum ยังไม่ต้อง -- python รวม complex ด้วยได้เพราะมีให้ใน built-ins เลย)
    • use prog lang as calculator (เอาบวก, ลบ, คูณ, หาร, ยกกำลัง, มอดูโลให้รอดก่อน)
    • char and string
    • array / list (ไหนๆ ก็พูดเกี่ยวกับ string ไปแล้ว พูดถึง array ไปตรงนี้เลยก็ได้)
    • hash map
  3. control flow
    • boolean & ค่าความจริง เช่นใน python 0 != False แต่ถ้า if 0: มันจะทำงานเหมือนกับ if False:
    • and, or, not (all, any)
    • if ... elseif ... else ...
    • loops (for, while)
    • error & handle
    • เขียน function / subroutine
  4. io
    • stdin, stdout
    • stream
    • file
  5. advance datatype
    • tuple / record / struct (เก็บข้อมูลคนละ type -- ภาษา weak type อาจข้ามตรงนี้ได้ -- ภาษา oop ข้ามไปพูดเรื่อง class เลยก็ได้)
    • class & inheritance (oop lang)
    • function obj (functional lang)
  6. semantics -- จริงๆ ควรเอาเนื้อหาไปเขียนใน category: computational theory แล้วตรงนี้พูดถึงแค่สั้นๆ ก็พอ?
    • evaluation เช่น fn_ret_true() or fn_ret_false() เวลาทำงานมันจะทำแค่ fn_ret_true() แล้วพอเจอ or ก็จบเลย
    • closure
    • ระบบ scope -- lexical scope / dynamic scope
    • ระบบ namespace / modules
  7. (8, 9, ...) stdlib, tools & technique ...

อันนี้เป็นแค่ guild คร่าวๆ สำหรับเนื้อหาที่เป็น programming lang เท่านั้น (พวก vi หรือแม้แต่ bash ก็อาจไม่ได้มีหน้าตาแบบนี้) จะทำตามหรือไม่ก็ได้ แต่โดยรวมๆ คืออยากให้เนื้อหาพวกเดียวกันมันอัดกันในตอนเดียวมากกว่าที่เป็นอยู่ฮะ

mementototem commented 11 years ago

ก็เห็นด้วยนะ แต่พอรวมแล้ว ต้องไม่ยาวเกินไปนะครับ (ประมาณ 5 - 6 หน้ากระดาษ น่าจะพอดี) เพราะว่า ยาวไป ไม่อ่าน กันหลายคน

บทความสั้น ๆ หลาย ๆ ตอนมันให้ความรู้สึกว่า เราเสียเวลาไปนิดเดียว แป๊บนึงก็จบแล้ว แม้ว่าจริง ๆ แล้วเราจะอ่านไปต่อเนื่องหลายบทความจนหมดไปหลายชั่วโมงก็ตาม

neizod commented 11 years ago

ขอความเห็นจากหน้าตัวอย่างหน้าที่ test merge หน่อยครับ

mementototem commented 11 years ago

อันนั้นโอเคครับ

อย่าง PHP ตัว cookie กับ session รวมกันได้นะ แต่ register กับ authen ไม่ควรรวมกัน (มันยาวตรงโค้ด ทั้งที่เนื้อหานิดเดียว)