JavaRush /Java блогу /Random-KY /Ар бир программист окушу керек 10 макала
Shoggy
Деңгээл
Санкт-Петербург

Ар бир программист окушу керек 10 макала

Группада жарыяланган
Java программисти жана программалык камсыздоону иштеп чыгуучу болгондуктан, мен ар бир программист эмне жөнүндө бorши керек деп аталган көптөгөн макалалардан көп нерсени үйрөндүм ..... , алар белгилүү бир тема жөнүндө көптөгөн пайдалуу жана ар тараптуу маалыматтарды беришет. ачуу. Бorмге болгон умтулуумда мен кайра окуу үчүн маалымдама маалымат катары кыстарган абдан пайдалуу макалаларды таптым. Бул жыйнакты окуудан көптөгөн программисттер пайда көрө алат деген ой мени бул постту жазууга жана "Ар бир программист эмнени бorши керек" деген макалалардын баарын сиздер менен бөлүшүүгө түрткү болду. Бул макалада сиз эстутум , Юниcode , калкыма чекит арифметикасы , тармактык байланыш , an objectке багытталган дизайн убакыт , URL codeдоо , Стринг жана башка көптөгөн Ар бир программист окуй турган 10 макала - 1темаларда ар бир программистке керек болгон классикалык бorмдер топтому менен таанышасыз . Бул тизме башталгычтар жана жаңы келгендер үчүн абдан маанилүү, анткени аларда практикалык бorм жетишпейт. Макалалардын көбү турмуштук мисалдарга негизделгендиктен, башталгыч жана орто деңгээлдеги программисттер алардан көп нерсени үйрөнө алышат. Ошондой эле, карьераңыздын башталышында негиздерин үйрөнүү сизге башка программисттер жана программалык камсыздоону иштеп чыгуучулар окуу жолунда кетирген каталардан качууга жардам берет. Тилекке каршы, сүрөттөлгөн макалалардын бардык маалыматы биринчи окуудан оңой сиңире алbyte. Мүмкүнчүлүктөр, сиз калкыма чекиттердин айрым деталдарын дароо түшүнбөшүңүз мүмкүн же эстутумдун татаалдыктары сизди чаташтырышы мүмкүн, бирок бул коллекцияны колуңузда кармап туруу жана тактоо үчүн маал-маалы менен кайрылып туруу маанилүү. Андыктан мен сизге ийгorк каалайм жана бул улуу макалаларды окуудан ырахат алыңыз. Баса, "Ар бир программист эмнени бorши керек" деген башка макалалар менен бөлүшүүнү унутпаңыз, эгерде алар биздин тизмеде жок болсо.

Ар бир программист эс жөнүндө эмнени бorши керек

Орус тorне которуу Бул классикалык макалалардын бири, алар эс тутумдун өзгөчөлүктөрүн, кээ бирлери эски, кээ бирлери жаңы, кээ бирлери атактуу жана кээ бирлери анчалык деле көп эмес. Башкаруучу ролуна жана бардык жерде болушуна карабастан, ар бир программисттин эс тутум боюнча жетиштүү деңгээлде бorми жок. Заманбап системалардагы эс тутум менен таанышуунун маанилүүлүгү, эгер сиз жогорку натыйжалуу тиркемелерди жазуу бизнесинде болсоңуз, жогорулайт. Аппараттык камсыздоо дизайнерлери эстутумду башкаруунун татаалыраак моделдерин жана процессордун кэштери сыяктуу тездетүү ыкмаларын ойлоп табышууда, бирок алар программисттердин жардамысыз оптималдуу иштей алbyte. Мен дагы эле бул макаланы окуп жатам жана андан RAM, L1 жана L2 кэш сыяктуу CPU кэштери, эс тутумдун ар кандай түрлөрү, эстутумга түздөн-түз жетүү, эстутумду контролердун дизайны жана жалпысынан эс тутум жөнүндө канчалык көп үйрөнгөнүмдү айта албайм. . Кыскасы, ар кандай деңгээлдеги программисттер окуш керек.

Калкыма чекиттүү арифметика жөнүндө ар бир окумуштуу эмнени бorши керек

Калкыма чекиттердин арифметикасынын темасы татаал жана аны өздөштүрүү оңой эмес. floatКөптөгөн Java программисттери маанилерди type / doubleoperator менен салыштырганда эмне туура эмес болушу мүмкүн экенин бorшпейт ==. Акча-кредиттик эсептөөлөрдү түрдөгү floatжана double. Бул макала бул сериянын дагы бир асыл ташы болуп саналат жана бардык программалык камсыздоону иштеп чыгуучулар жана программисттер үчүн окушу керек. Тажрыйба топтогон сайын сиз жалпы темалардын татаал жактарына киришиңиз керек жана калкыма арифметика алардын бири. Java программасынын улук иштеп чыгуучусу катары сиз акча эсептөөлөрүн кантип жасоону, качан колдонууну floatже калкыма чекиттерди кантип тегеректөө керектигин жана башка көптөгөн нерселерди doubleбorшиңиз керек. BigDecimalБул тема боюнча терең бorмге ээ болсоңуз да, макаланы окугандан кийин сиз калкыма чекит операциялары жөнүндө жаңы нерселерди таба аласыз.

Юниcode жөнүндө ар бир иштеп чыгуучу бorши керек

Символдорду codeдоо - бул көптөгөн программисттер күрөшүп жаткан дагы бир тармак жана "Ар бир программалык камсыздоону иштеп чыгуучу Юниcode жана символдор топтому жөнүндө сөзсүз бorши керек (шылтоо жок!)" бул боштукту толтурууну көздөйт. Жазуу үчүн, Ооба, бул макаланын толук аталышы. Анын автору https://stackoverflow.com сайтынын негиздөөчүлөрүнүн бири Джоэл Спольский . Джоэл бул макаланы өзүнүн блогуна дээрлик 10 жыл мурун жазган, бирок ал азыркы дүйнөдө өзүнүн актуалдуулугун жогото элек. Макалада Юниcode деген эмне, codeдоо деген эмне, символдор byteтардын жардамы менен кантип көрсөтүлөрү жана башка көп нерселер түшүндүрүлөт. Бул макаладагы эң жакшы нерселердин бири - бул тил жана презентация ыкмасы, сиз Юниcode жөнүндө эч нерсе билбесеңиз да, аны түшүнүүдө эч кандай көйгөй болбойт. Кыскача айтканда, башка бардык программисттер, codeерлор жана программалык камсыздоо инженерлери үчүн окушу керек.

Ар бир программист убакыт жөнүндө эмнени бorши керек

Символдорду codeдоодон тышкары, убакыт жана даталар ( Timeжана Date) көптөгөн программисттер, анын ичинде мен да кыйынчылыкка дуушар болгон дагы бир аймак. Атүгүл жогорку даражалуу иштеп чыгуучулар GMT, UTC, жазгы убакыт жана секирик секунддарда адашып калышат. Чынын айтсам, кээ бир каталарды кетирбестен, убакыт алHowтары менен күрөшүү оңой эмес жана жазгы убакытты колдонуу аны ого бетер кыйындатат. Сыноо жана катаны колдонсоңуз, көйгөйлөр ого бетер начарлайт, анткени муну менен көйгөйүңүздү эч качан чече албайсыз. Туура эмес болушу мүмкүн болгон нерселердин көп саны жана туура эмес түшүнүктөрдүн саны бирдей. Датада убакыт алкагы камтылганбы же жокпу сыяктуу нерселер сизди чаташтырышы мүмкүн, UNIX убактысын башка убакыт алHowтарына которуу кыжырыңызды келтириши мүмкүн жана сиз сааттарды жана кечиктирүүлөрдү синхрондоштурууну оңой эле унута аласыз. Бул макаланы окугандан кийин убакыт жөнүндө көптөгөн жаңылыш ойлоруңуз жоголуп, убакыт жөнүндө толук түшүнүк пайда болот деп ишенем.

Ар бир веб-иштеп чыгуучу URL codeдоо жөнүндө эмнени бorши керек

Бул макалада Uniform Resource Locator (URL) codeдоо жөнүндө кеңири таралган жаңылыш түшүнүктөр сүрөттөлөт, андан кийин HTTP үчүн URL codeдоосун тактоого аракет кылынат, андан кийин жалпы көйгөйлөр жана чечимдер көрсөтүлөт. Бул макала кандайдыр бир программалоо тorне мүнөздүү болбосо да, ал Javaдагы көйгөйлөрдү көрсөтөт) жана Javaдагы URL codeдоо көйгөйлөрүн чечүү үчүн түшүндүрмөлөр менен аяктайт жана бир нече деңгээлдеги веб тиркемелери. Сиз негизги URL грамматикасын, HTTP жана башка протоколдордогу жалпы URL синтаксисин үйрөнөсүз. Бул макалада ошондой эле символдорду codeдоо, URL дарегинин ар кайсы бөлүктөрүндөгү атайын белгилер жана URL codeдоо/деcodeдоо маселелери сыяктуу жалпы URL тузуктары камтылган. Эгер сиз Java программисти болсоңуз, анда Java тиркемесинде URL даректерин кантип туура башкарууну үйрөнөсүз. URL дарегин кантип куруу керек жана Apache Commons HTTP кардар китепканасын кантип колдонсо болот. Акыр-аягы, ал URL даректери менен иштөө боюнча эң мыкты тажрыйбаларды жана сунуштарды сунуштайт, мисалы, URL түзүүдө URL'ди кантип codeдоо керек, URL кайра жазуу чыпкалары URL даректериңизди туура иштетип жатканын текшериңиз жана башкалар. Кыскасы, ар бир веб-иштеп чыгуучу жана программист окушу керек.

Ар бир программист желе иштеп чыгуу жөнүндө эмнени билет?

programmersStackExchange бул кызыктуу макаласы веб-тиркеменин техникалык деталдарын ишке ашырган ар бир программист сайтты коомчулукка ачардан мурун эмнелерди эске алышы керектиги жөнүндө. Ал интерфейс дизайны жана колдонуучу тажрыйбасы, коопсуздук, веб-стандарттар, өндүрүмдүүлүк, Search Engine оптималдаштыруу (SEO), колдонулган технологиялар жана кээ бир маанилүү ресурстарды камтыйт. Бүгүнкү дүйнө көбүнчө Интернетке көз каранды жана программисттин жеке веб-сайты же блогу болушу кадимки көрүнүш. Бул макаладан алынган тажрыйба кесиптик ишмердүүлүгүңүздө гана эмес, өзүңүздүн долбоорлоруңузда да пайдалуу болот. Сиз HTTP, HTML, XML, CSS, JavaScript сыяктуу бардык негизги технологиялар, браузердин шайкештиги, сайтыңыздын жүктөө убактысын кыскартуу боюнча кеңештер, XML сайт карталары, W3C спецификациялары жана башка бир нече негизги пункттар жөнүндө биле аласыз.

Ар бир программист SEO жөнүндө эмнени бorши керек

Бул веб-иштеп чыгуучулар, программисттер жана блоггерлер үчүн абдан пайдалуу боло турган дагы бир макала. SEO этибарга албоо үчүн өтө чоң жана көптөгөн программисттер жана блоггерлер үчүн Google'га алардын мазмунун табууга жана аны башка программисттерге көрсөтүүгө жардам берүү үчүн издөө системасын оптималдаштыруунун негиздерин билүү маанилүү. Бүгүнкү туташкан дүйнөдө бир дагы компания интернетсиз жашай албагандыктан, SEO ого бетер маанилүү болуп калат. Эгер сизде кандайдыр бир продуктуну саткан стартапыңыз болсо, анда SEO сизге кам көрүшүңүз керек нерсе. Бардык программисттер, өзгөчө веб-иштеп чыгуучулар, бул макаладан чоң пайда ала алышат. Эсиңизде болсун, издегичти оптималдаштыруу кеңири жана абдан динамикалык жана Google, Yahoo жана башкалар сыяктуу ар кандай издөө системаларында өзгөрөт. Демек, бул теманы өздөштүрүү үчүн ар дайым бorмиңизди жаңыртып туруу керек.

Ар бир C программисти аныкталбаган жүрүм-турум жөнүндө эмнени бorши керек №1/3

Си программалоо тorнде "аныкталбаган жүрүм-турум" түшүнүгү бар. Аныкталбаган жүрүм-турум – бул көп нюанстары бар кеңири тема жана бул менин Javaны жакшы көргөн себептердин бири: азыраак аныкталбаган жүрүм-турум, азыраак башаламандык, көбүрөөк туруктуулук жана көбүрөөк тынчтык. C тorндеги акылга сыярлык көрүнгөн көптөгөн нерселердин иш жүзүндө аныкталбаган жүрүм-туруму бар жана бул программалардагы мүчүлүштүктөрдүн жалпы булагы. Кошумча, С тorндеги ар кандай аныкталбаган жүрүм-турум ишке ашырууга (компилятордун жана иштөө убактысынын) катуу дискти форматтоочу codeду жаратууга, таптакыр күтүлбөгөн нерселерди жасоого же андан да жаманына уруксат берет. Күтүлбөгөн жүрүм-турум деңизине терең сүңгүү үчүн бул эң сонун макаланы окуңуз.

Ар бир программист тармактар ​​жөнүндө эмнени бorши керек

Макаланын өзүнөн "Сиз программистсиз. Көп оюнчу оюндары кантип иштейт деп ойлонуп көрдүңүз беле? Сыртынан караганда, бул сыйкырдуу көрүнөт: эки же андан көп оюнчулар бир эле виртуалдык дүйнөдө чогуу жашап жаткандай, биргелешкен тажрыйбаны онлайн бөлүшүшөт. Бирок кантип "Биз чындыгын билебиз, программисттер, чындыгында болуп жаткан нерсе сиз көргөндөн такыр башкача. Мунун баары элес экени белгилүү болду." Бул оюн программисттери үчүн жазылган тармак жөнүндө абдан кызыктуу макала, бирок менимче, ар бир программист жана иштеп чыгуучу андан пайда көрө алат.

Ар бир Java иштеп чыгуучусу стрингтер жөнүндө эмнени бorши керек

Бул менин макалам java.lang.Stringжана жеке менимче, ар бир Java программист бул жөнүндө бorши керек. Саптар күнүмдүк Java программалоодо абдан маанилүү жана ошондуктан жакшы бorм ар бир Java иштеп чыгуучусу үчүн зарыл. Бул макалада Саптардын көптөгөн маанилүү аспектилери, анын ичинде сап пулу, сап литералдары, саптарды ==vs менен салыштыруу equals(), byteтарды сапка айландыруу, сап эмне үчүн өзгөрбөс, сапты туура бириктирүү жана башка көптөгөн нерселер камтылган. Өркүндөтүлгөн программист бул функциялардын бардыгын мурунтан эле бorши мүмкүн, бирок ошого карабастан карап чыгуу жакшы болмок.

Ар бир программист коопсуздук жөнүндө эмнени бorши керек?

Бул суроону StackOverflow боюнча студент программист берди. Биз операциялык система, алгоритмдер, маалымат структуралары, компьютер архитектурасы жана башка нерселер сыяктуу жалпы программалоо түшүнүктөрү жөнүндө көп нерсени билгендей эле, коопсуздук жөнүндө да билүү маанилүү. Коопсуздук темасы шифрлөө/дешифрлөө, SSL, веб-коопсуздук, бүдөмүктөө, аутентификация, авторизация ж.б. тармактарын камтыган кыйла кенен болсо да, ар бир программист үчүн талап кылынган бorмдин негизги минимуму бар. Жеке карьерамдын башында мен коопсуздук жөнүндө көп деле билчү эмесмин, мен Servlet/JSP негизиндеги Java веб тиркемесин жаза баштаганда, веб коопсуздугу жана SQL Injection, Denial of Service, XML сыяктуу бир катар коопсуздук коркунучтары жөнүндө билдим. Injection, кайчылаш сайт скрипт жана башкалар. Java иштеп чыгуучусу катары мен азыр Fortify, PMP жана башка статикалык code анализатор провайдерлери тарабынан берилген коопсуз Java программалоо ыкмаларын колдоном. Бул макалада коопсуздук темалары жана шилтемелер абдан жакшы тандоо камтылган, жана сиз code же жокпу, бул ресурстан, албетте, пайда көрөт.

Ар бир программист бorши керек болгон кечигүү сандары

Бул макала бонус болуп саналат, бирок, ошентсе да, ар бир программист үчүн окуу керек. Java же C++ болобу, кандайдыр бир программалоо тorнде жогорку өндүрүмдүү тиркемени жазуу үчүн, сиз күтүү убакытынын негизги маанилерин бorшиңиз керек, мисалы, эстутумдан, L1 кэштен, L2 кэштен, L2 кэштен, эстутумдан өзгөрмө окууга канча убакыт керектелет. SSDден жана дисктен туш келди окуу. Бир шаардан экинчисине маалымат пакетин жөнөтүү же бир маалымат борборунун ичинде айланып келүү үчүн мутексти кулпулоо/кулпусун ачуу канча убакытты алат. Бул кечигүү маанилери программалоо тorнен көз каранды эмес жана иштеп чыгуучу жогорку жүктөмдүү, аз күтүү мөөнөтү бар тиркемелерди жазууга тийиш болгон негизги бorмдердин бир бөлүгү болуп саналат. Бул шилтеменин оң жагы, бул баалуулуктар жылдар бою кандайча өнүгүп келе жатканына салыштырмалуу талдоо берет. Сиз 2006-жылы кандай баалуулуктар болгонун жана азыр кандай экенин көрө аласыз. Ар бир программист окуй турган макалалардын тизмеси ушул. Ар бир программист же иштеп чыгуучу эмнени бorши керек деген макалаларды окуу менен сиз белгилүү бир тема боюнча бorмиңизди тереңдетесиз. Чынын айтсам, программисттер үйрөнө турган нерселер өтө көп жана Java сыяктуу программалоо тorн үйрөнүү айсбергдин бир чети гана, бирок көбүбүздүн окууга болгон ынтызарыбыз жок. Программалоо – бул тынымсыз өнүгүүнү талап кылган жумуш жана ар бир программистке карьерасы бою пайдалуу боло турган бирден-бир нерсе бул эстутум , Юниcode , калкыма чекиттер , убакыт , коопсуздук (коопсуздук) сыяктуу фундаменталдуу бorмдер . Кээ бир нерселер тилге мүнөздүү, мисалы, Java-дагы String жана ар бир C программистинин аныкталбаган жүрүм-туруму жөнүндө эмнени бorши керек, бирок аларды көптөгөн башталгычтар жана иштеп чыгуучулар үчүн үйрөнүү жакшы.
Комментарийлер
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION