Ðниги, коÑоÑÑе должен пÑоÑиÑаÑÑ Java пÑогÑаммиÑÑ: Ð¾Ñ Ð½Ð¾Ð²Ð¸Ñка до пÑоÑеÑÑионала
[ÐÑимеÑание пеÑеводÑика: ÑеÑÐ¼Ð¸Ð½Ñ Ð³ÑадаÑии «пÑоÑеÑÑионализма» оÑÑÐ°Ð²Ð»ÐµÐ½Ñ Ð°Ð½Ð³Ð»Ð¾ÑзÑÑнÑе в ÑвÑзи Ñ ÑÑÑдноÑÑÑÑ Ð¸Ñ Ð°Ð´ÐµÐºÐ²Ð°Ñного пеÑевода на ÑÑÑÑкий и неÑовпадением Ñ Ð¿ÑивÑÑнÑми Junior-Middle-Senior-Lead. ÐеÑевод доÑÑаÑоÑно волÑнÑй â еÑли знаний ÑзÑка Ñ Ð²Ð°ÑаеÑ, Ñо лÑÑÑе ÑиÑаÑÑ Ð¾Ñигинал, как и ÑовеÑÑÐµÑ Ð°Ð²ÑоÑ. Ðба ÑзÑка Ð´Ð»Ñ Ð¼ÐµÐ½Ñ Ð½Ðµ ÑоднÑе, Ñак ÑÑо пÑо оÑибки ÑообÑайÑе в лиÑÐºÑ â иÑпÑавим. ÐдеÑÑ Ð¸ далее в квадÑаÑнÑÑ ÑÐºÐ¾Ð±ÐºÐ°Ñ Ð¿ÑимеÑÐ°Ð½Ð¸Ñ Ð¿ÐµÑеводÑика]
Я замеÑил, ÑÑо в поÑледние меÑÑÑÑ Ñ ÑекомендÑÑ Ð¾Ð´Ð½Ð¸ и Ñе же книги как новиÑкам, Ñак и опÑÑнÑм ÑазÑабоÑÑикам. ÐоÑÑÐ¾Ð¼Ñ Ñ ÑеÑил ÑоÑÑавиÑÑ ÑпиÑок ÑÑÐ¸Ñ ÐºÐ½Ð¸Ð³. Ðни ÑоÑÑавили мне Ð½ÐµÐ¿Ð»Ð¾Ñ ÑÑ ÐºÐ¾Ð¼Ð¿Ð°Ð½Ð¸Ñ Ð² пÑоÑеÑÑе моего ÑоÑÑа Ð¾Ñ Ð½Ð¾Ð²Ð¸Ñка до ÑегоднÑÑнего ÑÑÐ¾Ð²Ð½Ñ (какой-Ð±Ñ Ð¾Ð½ не бÑл :) ) СоÑÑавиÑÑ ÑпиÑок мне помогали дÑÑзÑÑ Ð¸ коллеги. ÐÑÐ¾Ð±Ð°Ñ Ð±Ð»Ð°Ð³Ð¾Ð´Ð°ÑнаÑÑÑ Frank Appel, Rüdiger Herrmann, Benjamin Muskalla и Ralf Sternberg
ÐоÑÑдок книг в ÑпиÑке оÑÑÐ°Ð¶Ð°ÐµÑ Ð¼Ð¾Ð¹ пеÑÑоналÑнÑй вÑбоÑ. ÐенÑйÑе его, как вам Ñгодно :) Ðдна Ð²Ð°Ð¶Ð½Ð°Ñ Ð²ÐµÑÑ â еÑли Ð²Ñ Ð¿Ð¾ÐºÑпаеÑе ÐºÐ½Ð¸Ð³Ñ Ð¸Ð· ÑÑого ÑпиÑка, Ñо вÑегда вÑбиÑайÑе англоÑзÑÑнÑй ваÑианÑ. Ðаже еÑли еÑÑÑ Ð¿ÐµÑевод на Ð²Ð°Ñ Ñодной ÑзÑк, оÑигиналÑÐ½Ð°Ñ Ð²ÐµÑÑÐ¸Ñ Ð¿Ð¾ÑÑи вÑегда лÑÑÑий вÑбоÑ.
Beginner
ÐÑли Ð²Ñ ÑолÑко наÑали знакомÑÑво Ñ Java, Ñо Ð´Ð»Ñ Ð½Ð°Ñала нÑжно познакомиÑÑÑÑ Ñ ÑинÑакÑиÑом ÑзÑка. СÑÑеÑÑвÑÐµÑ Ð±Ð¾Ð»ÑÑое колиÑеÑÑво книг Ð´Ð»Ñ ÑÑого. ÐÑакÑиÑеÑки вÑегда ÑодеÑжание ÑÑÐ¸Ñ ÐºÐ½Ð¸Ð³ оÑÐµÐ½Ñ Ð¿Ð¾Ñ Ð¾Ð¶Ðµ, но Ð²Ð¾Ñ ÑÑÐ¸Ð»Ñ Ð½Ð°Ð¿Ð¸ÑÐ°Ð½Ð¸Ñ Ð¾ÑлиÑаеÑÑÑ ÐºÐ°ÑдиналÑно.
![]() |
![]() |
![]() |
ÐÑÑÑ Ð´Ð²Ðµ книги, коÑоÑÑе ÑÑÐ¾Ð¸Ñ Ð¿Ð¾ÑекомендоваÑÑ. Head First Java неÑÑандаÑÑнаÑ, но легкоÑиÑаемаÑ. Ðак и вÑÑ ÑеÑиÑ, Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе лÑбиÑÑ ÐµÑ Ð¸Ð»Ð¸ Ð½ÐµÑ (Ñ Ð¾Ð±Ð¾Ð¶Ð°Ñ Ð¸Ñ ). Java, A Beginner's Guide более ÑÑадиÑÐ¸Ð¾Ð½Ð½Ð°Ñ ÐºÐ½Ð¸Ð³Ð°, коÑоÑÐ°Ñ Ð¾ÑлиÑно обÑÑÑнÑÐµÑ Java. ÐоÑле Ñого, как Ð²Ñ Ñполна ознакомилиÑÑ Ñ ÑинÑакÑиÑом и базовÑми конÑÑÑÑкÑиÑми, Ñ ÑекомендÑÑ Ð¿ÑоÑиÑаÑÑ ÐµÑе Ð¾Ð´Ð½Ñ ÐºÐ½Ð¸Ð³Ñ Ð¿ÐµÑед Ñем, как пеÑÐµÑ Ð¾Ð´Ð¸ÑÑ Ðº ÑледÑÑÑÐµÐ¼Ñ ÑÑÐ°Ð¿Ñ (ÑÑо ÑпÑаведливо и Ð´Ð»Ñ Ð´ÑÑÐ³Ð¸Ñ ÑзÑков пÑогÑаммиÑованиÑ). Test Driven Development (авÑÐ¾Ñ Kent Beck) опиÑÑÐ²Ð°ÐµÑ ÑÐµÑ Ð½Ð¸ÐºÑ Ð¿ÑогÑаммиÑованиÑ, коÑоÑÑй Ð¼Ñ Ð¸ÑполÑзÑем в EclipseSource. ÐÐХРTDD должна Ð²Ñ Ð¾Ð´Ð¸ÑÑ Ð² кÑÑÑ Ð¾Ð±ÑÑÐµÐ½Ð¸Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ пÑогÑаммиÑÑа.
Journeyman
Journeyman â пÑогÑаммиÑÑ, коÑоÑÑе Ñже Ð·Ð½Ð°ÐµÑ ÑзÑк, Ñделал неÑколÑко неболÑÑÐ¸Ñ Ð¿ÑоекÑов, но коÑоÑÐ¾Ð¼Ñ ÐµÑе пÑедÑÑÐ¾Ð¸Ñ ÑазвиÑÑÑÑ Ð´Ð¾ пÑоÑеÑÑионала. ÐонеÑно, Ñ ÑвеÑен, ÑÑо Ð²Ñ Ð½Ðµ ÑоглаÑÐ½Ñ Ñ ÑÑим ÑÑвеÑждением (Ñ Ð½Ðµ бÑл ÑоглаÑен, напÑимеÑ). Ðо поÑле пÑÑи Ð»ÐµÑ Ð² ÑÑом ÑÑаÑÑÑе Ð²Ñ ÑоглаÑиÑеÑÑ :)
![]() |
![]() |
![]() |
ÐÑоÑÑÑÑ Ð·Ð½Ð°Ð½Ð¸Ð¹ ÑзÑка недоÑÑаÑоÑно â вам Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ ÑглÑблÑÑÑ Ð¸Ñ . ÐÐ»Ñ ÑÑÐ¸Ñ Ñелей пÑакÑиÑеÑки лÑбой пÑоÑеÑÑионал Java поÑекомендÑÐµÑ ÐºÐ½Ð¸Ð³Ñ Effective Java, авÑÐ¾Ñ Joshua Bloch. ÐÑÑÐ³Ð°Ñ ÐºÐ½Ð¸Ð³Ð° â The Pragmatic Programmer â Ð¿Ð¾Ñ Ð¾Ð¶Ð° на ÑбоÑник замеÑок. Ðна подÑобна ÑаÑкÑÑÐ²Ð°ÐµÑ Ñе ÑемÑ, Ñ ÐºÐ¾ÑоÑÑми Ð²Ñ ÑÑолкнеÑеÑÑ ÐºÐ°Ðº пÑогÑаммиÑÑ, поÑÑÐ¾Ð¼Ñ ÐµÐµ Ñакже обÑзаÑелÑно надо пÑоÑиÑаÑÑ. Ðо знание ÑзÑка не наÑÑÐ¸Ñ Ð²Ð°Ñ Ñ Ð¾ÑоÑо пиÑаÑÑ Ð¿ÑогÑаммÑ. С моей ÑоÑки зÑÐµÐ½Ð¸Ñ Ð¾Ð´Ð½Ð° из долгоÑÑоÑнÑÑ Ð·Ð°Ð´Ð°Ñ Ð¿ÑогÑаммиÑÑа â наÑÑиÑÑÑÑ Ð¿ÑавилÑно ÑоздаваÑÑ Ð°ÑÑ Ð¸ÑекÑÑÑÑ Ð¿Ñиложений. ÐÐ»Ñ ÑÑÐ¸Ñ Ñелей Design Patterns Book, напиÑÐ°Ð½Ð°Ñ Ðандой ЧеÑÑÑÐµÑ [неÑ, ÑÑо не Ñе, коÑоÑÑе левÑе в ÐÐÐ, а ÑаÑпÑоÑÑÑанÑнное название гÑÑÐ¿Ð¿Ñ Ð°Ð²ÑоÑов (ÐÑÐ¸Ñ Ðамма, РиÑаÑд Хелм, РалÑÑ ÐжонÑон, Ðжон ÐлиÑÑидеÑ)] â Ñ Ð¾ÑоÑее наÑало.
![]() |
![]() |
![]() |
![]() |
СоглаÑно книге TDD (авÑÐ¾Ñ Beck) золоÑое пÑавило â ÑÑо: кÑаÑнÑй, зеленÑй, ÑеÑакÑоÑ. Martin Fowler обÑÑÑнÑÐµÑ Ð¿Ð¾Ñледний пÑÐ½ÐºÑ Ð² Ñвоей книге Refactoring Book. ÐоÑле Ñого, как вÑе ÑеÑÑÑ Ð¿ÑоÑли ÑÑпеÑно и Ð²Ñ Ð¾ÑноваÑелÑно пеÑеÑабоÑали код, Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ пÑоÑиÑаÑÑ ÐºÐ½Ð¸Ð³Ñ Clean Code (Robert C. Martin) (минимÑм два Ñаза). ÐоÑле пеÑвого Ñаза Ñ Ð±Ð¾Ð»ÐµÐµ Ñем ÑвеÑен, ÑÑо Ð²Ñ Ð½Ð°ÑнеÑе дÑмаÑÑ Ð¿Ñо Ñвой код по-дÑÑÐ³Ð¾Ð¼Ñ [и вÑÑд ли в лÑÑÑÑÑ ÑÑоÑонÑ]. OSGi in Action ÑмоÑÑиÑÑÑÑ ÑÑÑанно в ÑÑом ÑпиÑке. Я добавил ее ÑÑда, поÑÐ¾Ð¼Ñ ÑÑо Ñ Ð´ÑмаÑ, ÑÑо модÑлÑноÑÑÑ Ð¾Ð´Ð¸Ð½ из ÑамÑÑ Ð²Ð°Ð¶Ð½ÑÑ Ð¿ÑинÑипов дизайна пÑиложений. Java-пÑогÑаммиÑÑÑ Ð¿ÑоÑÑо Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ знаÑÑ OSGI. ÐомниÑе, Ñ ÑпомÑнÑл, ÑÑо Ð²Ñ Ð½Ðµ бÑдеÑе ÑоглаÑаÑÑÑÑ Ñо мной, ÑÑо Ð²Ñ Ð½Ðµ ÑÑанеÑе Professional, пока не побÑдеÑе в ÑÑаÑÑÑе Journeyman по кÑайней меÑе неÑколÑко леÑ? Я ÑвеÑен, ÑÑо поÑле пÑоÑÑÐµÐ½Ð¸Ñ The Clean Coder Ñ Ð²Ð°Ñ Ñбедил. Robert C. Martin пиÑÐµÑ Ð¿Ñо ÑÐµÐ±Ñ Ð¸ Ñвой пÑÑÑ ÑазвиÑÐ¸Ñ Ð¾Ñ Ð½Ð¾Ð²Ð¸Ñка до пÑоÑеÑÑионала. ÐÑо дейÑÑвиÑелÑно Ñамое наÑÑоÑÑее оÑкÑовение!
Professional
Я иÑполÑзÑÑ Ñлово «Professional», поÑÐ¾Ð¼Ñ ÑÑо в ÑÑом конÑекÑÑе его иÑполÑзÑÑÑ Ð¼Ð½Ð¾Ð³Ð¸Ðµ авÑоÑÑ. Ðо Ñ Ð½Ðµ лÑÐ±Ð»Ñ Ð¸ÑполÑзоваÑÑ ÑÑо Ñлово Ð´Ð»Ñ Ð¾Ð¿Ð¸ÑÐ°Ð½Ð¸Ñ ÑÑÐ¾Ð²Ð½Ñ Ð¿ÑогÑаммиÑÑа. «Professional» звÑÑÐ¸Ñ Ñак, как бÑдÑо Ð²Ñ Ñже доÑÑигли веÑÑинÑ. Ðо ÑÑо пÑоÑÑо-напÑоÑÑо непÑавда. ÐÑогÑаммиÑÑ Ð½Ð¸ÐºÐ¾Ð³Ð´Ð° не Ð¼Ð¾Ð¶ÐµÑ Ð·Ð°ÐºÐ¾Ð½ÑиÑÑ Ñвое обÑÑение [впÑоÑем, ÑÑо ÑпÑаведливо Ð´Ð»Ñ 83% пÑоÑеÑÑий]. Ðниги, коÑоÑÑе Ñ Ð¿Ð¾Ð¼ÐµÑÑил в ÑÑÑ ÐºÐ°ÑегоÑÐ¸Ñ â пÑоÑÑо более пÑодвинÑÑÑе. Ðни ÑглÑблÑÑÑÑÑ Ð² деÑали или ÑÑениÑÑÑÑ Ð²Ð°Ñ Ð½Ð° ÑÐ¾Ð»Ñ Ð»Ð¸Ð´ÐµÑа командÑ.
![]() |
![]() |
![]() |
![]() |
СовÑем немного можно ÑделаÑÑ Ð² Java, не иÑполÑзÑÑ Ð¼Ð½Ð¾Ð³Ð¾Ð¿Ð¾ÑоÑноÑÑÑ. Ðока Ð²Ñ Ð² ÑÑаÑÑÑе Journeyman, ÑкоÑее вÑего Ñ Ð²Ð°Ñ Ð² команде бÑÐ´ÐµÑ Ñеловек [нÑ-да, нÑ-да], коÑоÑÑй ÑÐ¼Ð¾Ð¶ÐµÑ Ð²Ð°Ð¼ помоÑÑ Ñ ÑÑой Ñемой. Ðо Ñано или поздно наÑÑÐ°Ð½ÐµÑ Ð¼Ð¾Ð¼ÐµÐ½Ñ, когда вам нÑжно бÑÐ´ÐµÑ Ð½Ð°ÑÑиÑÑÑÑ Ð¼Ð½Ð¾Ð³Ð¾Ð¿Ð¾ÑоÑноÑÑи ÑамомÑ. Brian Goetz пÑоделал огÑомнÑÑ ÑабоÑÑ Ð² Ñвоей книге Java Concurrency in Practice. ÐÑÑÑ Ð¿ÑоÑеÑÑионалом â знаÑÐ¸Ñ Ð±ÑаÑÑ Ð¾ÑвеÑÑÑвенноÑÑÑ. Ð Ñак как Ð²Ñ Ð¿ÑогÑаммиÑÑ â ÑÑо еÑе знаÑиÑÑ Ð½ÐµÑÑи оÑвеÑÑÑвенноÑÑÑ Ð·Ð° ÑÑÑаÑевÑий код. Micheal Feathers опиÑал ÑÑÑ ÑкÑÑнÑÑ ÑÐµÐ¼Ñ Ð½ÐµÐ¼Ð½Ð¾Ð³Ð¾ веÑелее в книге Woking Effectively with Legacy Code. Также Ð²Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ ÑмеÑÑ Ð±ÑаÑÑ Ð¾ÑвеÑÑÑвенноÑÑÑ Ð·Ð° ÑÐ²Ð¾Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ. Tom DeMarco и Timothy Lister поÑÑаÑалиÑÑ ÑаÑкÑÑÑÑ ÑÑÑ ÑÐµÐ¼Ñ Ð² Peopleware, где опиÑали, как ÑабоÑаÑÑ ÑÑекÑивнÑе ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð¸ важнÑе Ñ Ð°ÑакÑеÑиÑÑики ÑÐ°ÐºÐ¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´. ÐÑоÑÑо обÑÑÑниÑÑ ÑÑÑднÑÑ ÑÐµÐ¼Ñ â оÑÐµÐ½Ñ ÑÑÐ¶ÐµÐ»Ð°Ñ Ð·Ð°Ð´Ð°Ñа. Ðемноге авÑоÑÑ ÑпоÑÐ¾Ð±Ð½Ñ Ð½Ð° ÑÑо. Martin Fowler пÑоделал огÑомнÑÑ ÑабоÑÑ Ð² книге Patterns of Enterprise Application Architecture, где подÑобно опиÑал пÑоÑеÑÑ Ð¿ÑоекÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÐÐ.
ÐадеÑÑÑ, вам понÑавилиÑÑ (или понÑавÑÑÑÑ, еÑли Ð²Ñ ÐµÑе не ÑиÑали) ÑÑи книги. ÐÑли Ð²Ñ Ð½Ðµ ÑоглаÑÐ½Ñ Ñо ÑпиÑком, или можеÑе поÑекомендоваÑÑ Ð´ÑÑгие инÑеÑеÑнÑе книги â оÑмеÑайÑеÑÑ Ð² комменÑаÑиÑÑ [пÑиÑоединÑÑÑÑ Ðº авÑоÑÑ. Также в комменÑаÑиÑÑ Ðº оÑигиналÑной ÑÑаÑÑе еÑÑÑ Ð½ÐµÑколÑко инÑеÑеÑнÑÑ ÐºÐ½Ð¸Ð³. Те книги из ÑпиÑка, ÑÑо Ñ Ñже пÑоÑиÑал â однознаÑно ÑÑоили ÑÑого. ÐÑ Ð¸ ÑепеÑÑ ÐµÑÑÑ Ð½ÐµÐ¿Ð»Ð¾Ñ Ð¾Ð¹ ÑпиÑок Ð´Ð»Ñ Ð¿ÑодолжениÑ]














