Программист болон хэрэглэгчийн хооронд ямар ялгаа байдаг вэ? Системийн администратор ба программист хоёрын ялгаа. Системийг суулгах, цаашид ажиллуулахад онцгой анхаарал хандуулах ёстой зарим зүйл

Хүмүүс системийн администратор, программист хоёрын ялгааг ойлгодоггүй тул мэдээллийн технологийн бүх ажилчдыг программист гэж нэрлэдэг. Зарим нь гомдоод байхад зарим нь аль хэдийн дасчихсан. Гэхдээ энэ нийтлэлийг уншсан ихэнх хүмүүст ойлгомжтой байхын тулд би энэ ялгааг тодруулахыг хүсч байна :)
Хэрэв байгууллага нь мэдээллийн технологийн хэлтэс (инженер) эсвэл энгийнээр хэлбэл компьютерийн хэлтэстэй бол дараахь хэлтэстэй байна.

- гол ажил бол сервер, серверийн програм хангамжийн ажиллагааг хянах, утасны станцын удирдлага, аюулгүй байдлын бодлого - ерөнхийдөө эдгээр нь байгууллагын бүх компьютерийн бүтцийн тархи юм.

Техникийн дэмжлэг үзүүлэх мэргэжилтнүүд (эсвэл инженерүүд)- Эдгээр нь энгийн хэрэглэгчдийн компьютертэй ажилладаг, тэдгээрийг тохируулах, хэрэглэгчдэд одоогийн асуудлыг шийдвэрлэхэд тусалдаг, хэрэглэгчийн компьютер дээрх вирусыг барих гэх мэт залуус юм. гэх мэт. Нэг ёсондоо Мэргэжилтэн бол ирээдүйн системийн администратор, учир нь системийн администратор нь мэргэжилтний ажлыг мөн гүйцэтгэж болно. Хэрэв удирдлага зөвшөөрвөл системийн администраторын ажлыг мэргэжилтэн гүйцэтгэж чадна - удирдлага нь системийн администраторт илүү итгэдэг :)

Программистууд- Эдгээр нь энгийн хэрэглэгчдэд ойлгомжгүй хэлээр янз бүрийн текстийг байнга бичдэг залуус юм. Дараа нь эдгээр бичвэрүүд нь ашигтай програмууд, хэрэгслүүд эсвэл зүгээр л ашигтай програмуудад зориулагдсан модулиуд (нэмэлт сонголтууд) болж хувирдаг.

Программист байх нь одоо моод болсон. Амжилтанд хүрсэн программистуудын тухай кино хийж, ном бичдэг бөгөөд олон оронд хөгжүүлэгчид сайн цалин авдаг. Гэсэн хэдий ч "техник" болон инновацийн загварлаг байсан ч програмистуудын мэддэг, бусдыг гайхшруулдаг олон зүйл байдаг. Quora-д оролцогчид эдгээр нийгэм соёлын болон танин мэдэхүйн ялгааг хэлэлцсэн. Хэлэлцүүлгийн хамгийн сонирхолтой сэтгэгдлийг доор харуулав.

Тиймээс програмистууд энгийн хүмүүсээс ялгаатай нь:

1. Кинон дээр гардаг хулгайн бүх үзэгдэл бол шал дэмий зүйл гэдгийг тэд ойлгодог. Жишээлбэл, кинонд гардаг "IT мэргэжилтнүүд"-ийн дэлгэцэн дээр гарч ирдэг кодууд хаанаас гардаг болохыг эндээс уншиж болно. Ерөнхийдөө программистуудын тухай киноны олон хэвшмэл ойлголт нь утгагүй зүйл гэж Билл Коулман бичжээ: "Бид бүгд тарган, залхуу суут хүмүүс биш. Бодит амьдрал дээр бид хэрхэн хэвийн харилцахаа мэддэг: бидний ажил үүнээс хамаардаг. Биднийг цахилгаанчин гэж бүү андуураарай;

Санаачлаагүй хүмүүст "хакердах" гол нөлөө нь нээлттэй консол юм. “Ихэнх хүмүүс намайг ажил хийж байхдаа зүгээр л дэлгэц ширтэж, цаг алдаж байна гэж бодох болно. Гэхдээ та консолыг онгойлгож, бичиж эхлэхэд тэд намайг Пентагоныг хакердах эсвэл өөр ид шид хийх гэж оролдож байна гэдэгт итгэлтэй байх болно" гэж хэлэлцүүлэгт оролцогчдын нэг бичжээ.

2. Ажиллаж байхдаа 25% нь хэрэглэгч үүсгэж буй аппликейшнд юуг “эвдэлж” болохыг олж мэдэх талаар толгойгоо гашилгадаг. “Хэрэв бүх зүйл зохих ёсоороо ажиллаж байвал программ хийх ёстой дүрмийг бичихэд харьцангуй хялбар байдаг. Хэрэв ямар нэг зүйл буруу болвол программ хийх ёстой дүрмийг бичих нь хамаагүй хэцүү байдаг” гэж Ким Мозер бичжээ. Үүний зэрэгцээ олон хэрэглэгчид програмууд нь тэдний илүү ухаалаг, илүү мэдлэгтэй найзууд шиг ажиллах ёстой гэж үздэг.

3. Үнэн хэрэгтээ хэрэглэгчдийн өдөр тутам хэрэглэдэг хамгийн чухал программ хангамжид хүртэл ямар нэгэн байдлаар гайхамшигт байдлаар нэгдэж, нэг бүтнээр бүтсэн аймшигтай “суга таяг” агуулагддаг гэдгийг тэд мэддэг. Хэлэлцүүлэгт оролцогчдын нэг Бен Черри "Энэ нь Боинг онгоцыг салгаж, тоормос нь хоорондоо наалдсан болохыг олж мэдсэнтэй адил юм" гэж бичжээ. Программистууд эмнэлгийн, санхүүгийн болон хувийн асар их хэмжээний мэдээлэл нь системийн аюулгүй байдлын өчүүхэн түвшинд хадгалагддаг гэдгийг мэддэг.

5. Тэд мэддэг: хэрэв хүн жишээлбэл, гартаа зургаан хуруутай байсан бол дэлхийн тооны үндсэн систем нь одоогийнх шиг 10 биш харин аравтын бутархай байх байсан.

6. Тэд энгийн хүнээс хамаагүй олон тооны хүчийг тооцоолуургүйгээр нэрлэж чадна. 100k гэх мэт илэрхийлэл дэх "k" товчлолыг "x1000" биш, харин "x1024" гэж ойлгодог. Гэхдээ ихэнх жирийн хүмүүс програмчлалыг гол төлөв математикийн хичээл гэж боддог бол программистууд логикийг хамгийн түрүүнд тавьдаг гэдгийг мэддэг.

7. Интернэт дэх энгийн зүйлс ямар төвөгтэй байдгийг тэд мэддэг. Эцсийн эцэст, Интернетээс хайх гэх мэт энгийн үйлдлүүд нь үнэндээ янз бүрийн түвшний олон нарийн төвөгтэй процессуудаар дэмжигддэг.

8. Ихэнх хүмүүс юу хүсч байгаагаа тайлбарлах гэж оролдохдоо хэтэрхий бүрхэг байдаг гэдэгт итгээрэй.


9. Хамаатан садан, найз нөхөд, танил талынхаа жирийн хүмүүс “компьютерээ засаарай” гэж байнга гуйхад тэд уурладаг.

10. Кодын гоо үзэсгэлэнг шүлэгтэй зүйрлэж болох ч хэрэглэгчийн хувьд алдааны мессеж шиг аймшигтай харагдах болно.

Програм хангамжийн бүтээгдэхүүнтэй ажиллах хүрээнд хүмүүсийг хэрэглэгч, програмист (засварлагч, хэрэгжүүлэгч гэх мэт) гэж хуваадаг. Энэ нийтлэлд эдгээр хоёр ангиллын харилцааг авч үзэх болно. Магадгүй энэ нь залуу мэргэжилтнүүд болон хэрэглэгчдийн хоорондох зарим зөрчлийг шийдвэрлэхэд тусална.

Ихэнх хэрэглэгчид автоматжуулалтын талаар маш консерватив байдаг. Системийг өөрчлөх нь зүйтэй гэдэгт хүнийг итгүүлэх нь маш хэцүү байж болно (холболтын асуудал гарч ирдэг, та хэсэг хугацаанд хоёр системд зэрэг ажиллах шаардлагатай болно, шинэ систем нь ердийн ажлыг гүйцэтгэхэд өөр арга барилыг шаардаж магадгүй юм.) Гэхдээ Аажмаар шинэ системд дасан зохицсоноор хэрэглэгч түүний бүх давуу талыг хуучин системтэй харьцуулахад энэ нь програмистын хувьд хамгийн сайн шагнал юм.

Нэг жижиг тэмдэглэл.

Ихэнх хэрэглэгчид системийн администратор, программист эсвэл Unixoid-ийн ялгааны талаар ямар ч ойлголтгүй байдаг. Тэдний хувьд програмист гэдэг нь компьютерээ засах, интернетээс бүх зүйлийг олох, эвдэрсэн утсыг гагнах, хатуу дискнээс устгасан мэдээллийг сэргээх боломжтой гэсэн үг юм. Мэдээжийн хэрэг, энэ нь бүхэлдээ үнэн биш боловч энэ нь энгийн хэрэглэгчийн сэтгэлд байгаа програмист хүний ​​дүр төрх юм.

Системийг суулгах, цаашид ажиллуулахад онцгой анхаарал хандуулах ёстой зарим зүйл:

  • Аливаа хэрэглэгч үйл ажиллагааны явцад үе үе гарч ирдэг бүх асуудлыг мэддэг нэг мэргэжилтэнтэй ажиллахыг илүүд үздэг. Тиймээс, боломжтой бол өөр мэргэжилтэн таны үйлчлүүлэгчтэй ажиллах нөхцөл байдлаас зайлсхийх хэрэгтэй.
  • Зөвлөгөө өгөхдөө хэт хөндлөнгөөс оролцох хэрэггүй, ялангуяа танаас асуугаагүй бол. Өөрийнхөө үзэл бодлыг бүү шаард - энэ нь зөвхөн санал бодлоо илэрхийлэхэд хангалттай. Эцсийн шийдвэрийг хэрэглэгч өөрөө гарга.
  • Зөвхөн програмчлалын чиглэлээр төдийгүй үйлчлүүлэгчийнхээ мэргэжлийн чиглэлээр мэдлэгээ дээшлүүлэхийг хичээгээрэй - энэ нь танд нэг хэлээр харилцах боломжийг олгоно. Хэрэглэгчид өөрсдийн мэргэжлийн үйл ажиллагааны онцлогтой холбоотой асуултуудыг байнга асуудаг.
  • Хэрэглэгч системийг тасралтгүй, алдаагүй ажиллахыг хүсдэг. Тэрээр өөрийн систем яагаад бүтэлгүйтсэнийг тайлбарлахдаа төдийлөн санаа зовдоггүй. Хэрэв ямар нэг зүйл тохиолдвол (энэ нь үргэлж ажлын явцын нэг хэсэг юм) хэрэглэгч хэн буруутай, системийг хэзээ засахыг мэдэх ёстой.
  • Хэдийгээр хэрэглэгч хэлтсийн бүтцэд гарсан өөрчлөлт, хууль тогтоомжийн өөрчлөлтийн талаар үргэлж урьдчилан мэддэг ч түүнийг системийн шинэчлэлтийн цаг хугацааны талаар асуухыг хүлээх хэрэггүй. Ийм мэдээллээр хэрэглэгчийг байнга шинэчилж байгаарай.

FPGA нь "Field Programmable Gate Array" гэсэн үгийн товчлол бөгөөд хаана ч, хэзээ ч програмчилж, дахин бүтээж болох асар том багц хаалга юм. Олон хэрэглэгчид FPGA гэж юу болохыг ойлгоогүй хэвээр байна. "Асар том хаалга" нь загварын хялбаршуулсан тайлбар юм. Зарим FPGA нь хатуу блокуудтай: санах ойн хянагч, өндөр хурдны холбооны интерфейс, PCIe төгсгөлийн цэгүүд. FPGA дотор хоорондоо чөлөөтэй холбогдож болох олон хаалга байдаг. Үйл ажиллагааны зарчим нь бие даасан логик элементийн микро схемийг холбохтой бараг төстэй юм. FPGA-г дэлхийд тэргүүлэгч Xilinx, Altera, Microsemi компаниуд үйлдвэрлэдэг.

FPGA-ийн хөгжлийн түүх

FPGA салбар нь PROM програмчлагдсан зөвхөн уншигдах санах ой болон PLD логик төхөөрөмжөөс үүссэн. 1970 онд Philips талбарын программчлагдах матрицыг зохион бүтээжээ. Хоёр төлөвлөгөөнөөс бүрдсэн ийм FPGA-ийн дизайн хийхэд логик хэлхээний тодорхой хэрэгжилтийг хангасан: програмчлагдсан утастай "AND" эсвэл "OR". Энэ нь түүнд Бүтээгдэхүүний нийлбэр хэлбэрээр функцийг хэрэгжүүлэх боломжийг олгосон.

Altera нь 1983 онд байгуулагдсан бөгөөд аль хэдийн 1984 онд салбарын анхны дахин программчлагдах логик төхөөрөмж болох багц дахь кварц цонхтой EP300-ийг гаргасан бөгөөд энэ нь EPROM шошгыг арилгахын тулд матриц дээр хэт ягаан туяа ашиглах боломжийг олгосон.

Зардал, хурдны бэрхшээлийг даван туулахын тулд тогтмол "OR" хаалганд зөвхөн нэг програмчлагдах "AND" оролтыг багтаасан програмчлагдах массив логикийг боловсруулсан. PAL болон PLA нь бусад хувилбаруудын хамт энгийн програмчлагдсан логик төхөөрөмж (SPLD) гэж бүлэглэгддэг. Технологийн өсөн нэмэгдэж буй шаардлагыг хангахын тулд блокуудыг хооронд нь холбох програм хангамжийн харилцан холболт бүхий нэг чипэд нэгтгэгдсэн ийм FPGA-уудыг ашигласан. Тэдгээрийг иж бүрэн PLD гэж нэрлэдэг бөгөөд Altera боловсруулсан.

Транзисторууд нь хаалганы массивын маск дээр суурилсан програмчлагдсан электрон төхөөрөмжүүдийн өөр нэг анги юм. Эдгээр нь тусгай утас ашиглан холбогдож болох транзисторын массивуудаас бүрдэнэ. Тэд логик блокуудад зам тавьж, хэрэглэгчдэд үйлдвэрлэлийн лабораторид бус газар дээр нь тохируулах боломжийг олгосон.

Анхны арилжааны хувьд ашигтай FPGA-г хөгжүүлэх санаа нь Xilinx-ийн үүсгэн байгуулагчид болох Росс Фриман, Бернард Вондершмитт нарынх юм. XC2064 нь 1985 онд зохион бүтээгдсэн бөгөөд 3 хайлтын хүснэгт бүхий 64 тохируулж болох логик блокоос бүрдсэн. Энэ нь FPGA гэж юу болох талаар орчин үеийн ойлголтыг өгдөг. 1980 оны сүүлээр Стив Кассельман 6,000,000 дахин програмчлагдсан хаалга бүхий компьютер бүтээх туршилтыг АНУ-ын Тэнгисийн цэргийн гадаргын байлдааны дивизээс ивээн тэтгэгчдийг олж, улмаар 1992 онд патент авчээ.

1990 оны эцэс гэхэд FPGA салбарт өрсөлдөөн ихсэж, Xilinx-ийн зах зээлд эзлэх хувь буурч эхэлсэн. Actel, Altera, Lattice, QuickLogic, Cypress, Lucent, SiliconBlue зэрэг тоглогчид Xilinx-ийн хамт дэлхийн FPGA зах зээлд байр сууриа олж чадсан. 1997 онд Адриан Томпсон FPGA програмчлал болон генетикийн алгоритмын технологийг FPGA-тай хослуулж чадсанаар Evolvable-ийн шинэ эрин үеийг эхлүүлсэн.

Өнөөдөр FPGA-ууд нэлээд боломжийн болсон тул хэрэглэгчдийн зах зээлд алдартай хэвээр байна. Эдгээр нь хоорондоо холбогдсон сүлжээгээр хүрээлэгдсэн LUT гэж нэрлэгддэг логик эсүүдээс бүрдэх бөгөөд бараг ямар ч дижитал алгоритмыг хэрэгжүүлэх уян хатан системийг хангадаг.

Програмчлалын зарчим

Эхлэгчдэд зориулсан FPGA програмчлал нь FPGA дээрх шийдлийг сурах, төлөвлөх, төлөвлөх, хэрэгжүүлэх үйл явц юм. Байршлын тоо, төрөл нь программ бүрт өөр өөр байдаг. Шаардлагын баримт бичгийг бүрдүүлэх, санал болгож буй шийдлийг хэрхэн хэрэгжүүлэх талаар тайлбарласан дизайны баримт бичгийг бий болгох нь болзошгүй асуудлуудыг шийдвэрлэхэд маш их тустай байж болно.

Өндөр чанартай дизайны баримт бичгийг бүтээхэд зарцуулсан цаг нь ирээдүйд дахин засварлах, дибаг хийх, алдаа засахад цаг хэмнэх болно. FPGA програмчлалыг ашиглан шийдлийг хэрэгжүүлэх нь дизайныг нэвтрүүлэх аргуудын аль нэгийг ашиглан төсөл үүсгэх явдал юм. Үүнд Verilog эсвэл VHDL гэх мэт схемүүд эсвэл HDL код орно. FPGA нь Altera-ийн FPGA програмчлалын хэрэгслийг ашиглан гаралтын файлыг физик FPGA төхөөрөмж рүү програмчилж болно. Схемийн дизайныг нэвтрүүлэх нь үйлдвэрлэлд ашиглагдахаа больсон. Синтез ба программчлалыг ISE болон Vivado, Numato Lab тохиргооны хэрэгслүүд гэх мэт үйлдвэрлэгчийн хэрэгслүүд бараг бүхэлд нь хариуцдаг.

RTL нь Register Transfer Level гэсэн үгийн товчлол юм. Дизайнер нь мөн техник хангамжийн дизайны контекстэд ижил утгатай "Register Transfer Logic" эсвэл "Register Transfer Language" гэсэн нэр томьёотой тулгардаг. RTL нь дижитал техник хангамжийн дизайны дээд түвшний хийсвэрлэл бөгөөд нэг талдаа зан үйлийн загварчлал, нөгөө талдаа гарцын түвшинд цэвэр бүтцийн хооронд байрладаг.

Хаалганы загварчлал гэдэг нь үндсэн хаалгыг ашиглан техник хангамжийг дүрслэхийг хэлдэг бөгөөд энэ нь нэлээд уйтгартай байдаг. RTL нь FPGA програмчлалын үндэс суурьт хэрэглэгддэг "псевдокод" гэсэн нэр томъёотой ижил төстэй гэж үзэж болно. Та техник хангамжийн дизайныг цагийн мөчлөг бүрийн нэг багц регистрээс нөгөө рүү шилжих шат дамжлага эсвэл өгөгдлийн урсгал гэж тодорхойлж болно.

RTL-ийг мөн "өгөгдлийн урсгал" дизайн гэж нэрлэдэг. RTL загвар бэлэн болмогц Verilog, VHDL, SystemVerilog эсвэл бусад тоног төхөөрөмжийн тайлбар хэлийг ашиглан бодит HDL код болгон хувиргахад хялбар болно.

FPGA нь зөвхөн нэг багц хаалганаас хамаагүй илүү юм. Хэдийгээр логик элементүүдийг зохион байгуулж, холбох замаар ямар ч төвөгтэй логик хэлхээг барих боломжтой. Энэ бол логикийг энгийн хэлбэрээр илэрхийлэх арга бөгөөд эцэст нь массив элемент болж хувирдаг. Үүнийг хийх хоёр түгээмэл арга бол HDL-ийн схем болон техник хангамжийн тайлбар хэлийг нэвтрүүлэх явдал юм. Үүнийг өргөнөөр ашиглахаас өмнө инженерүүд хэлхээний диаграммыг ашиглан бүх зүйлийг зохион бүтээсэн. Эдгээр нь жижиг төслүүдийн хувьд маш энгийн байсан боловч том төслүүдийн хувьд удирдах боломжгүй байв. Сая сая гарцтай Pentium-д зориулж Intel-ийн инженерүүд хэрхэн диаграммыг зурдагийг зөвхөн төсөөлж болно! Энэ бол хүлээн зөвшөөрөхийн аргагүй хэцүү зүйл юм.

Verilog нь текст хэлбэрээр дижитал хэлхээнд ашиглаж болох HDL техник хангамжийн тайлбар хэл юм. Хэрэглэгч програмчлалын туршлагатай бол Verilog сурах нь тийм ч хэцүү биш юм. VHDL бол салбарт өргөн хэрэглэгддэг өөр нэг алдартай HDL юм. Verilog болон VHDL зах зээл дээр их бага хэмжээгээр хүлээн зөвшөөрөгддөг боловч хэрэглэгчид ихэвчлэн Verilog-г сонгодог, учир нь энэ нь сурахад хялбар, Си хэлтэй синтакс шинж чанартай байдаг.

FPGA нь хүссэн тоног төхөөрөмжийн тохиргоог хийх боломжийг олгодог барилгын блок гэж үзэж болно. Энэ нь CAD ашиглан богино хугацаанд илүү нягтралтай, сайжруулсан функц бүхий PLD-ийн тусгай хэлбэр юм. Ашигласан програмчлалын технологид тулгуурлан FPGA-г өөр өөр хувилбараар авах боломжтой.

Тэдгээрийг ашиглан програмчилж болно:

  1. Хамгаалалтын эсрэг технологи.
  2. Actel-ийн төхөөрөмж болох Flash технологид суурилсан програмчлал.
  3. FPGA-г хэдэн мянган удаа дахин програмчлах боломжтой бөгөөд дахин програмчлалын талбарт хэдхэн минут зарцуулагдах ба тогтворгүй санах ойтой.

SRAM технологид суурилсан FPGA нь хязгааргүй дахин програмчлах, маш хурдан дахин тохируулах эсвэл бага хэмжээний нэмэлт хэлхээний тусламжтайгаар хэсэгчлэн дахин тохируулах боломжийг олгодог. Altera, Actel, Atmel, Xilinx зэрэг ихэнх компаниуд эдгээр төхөөрөмжийг үйлдвэрлэдэг.

Тохируулах боломжтой логик блокууд

Өөр өөр үйлдвэрлэгчид, арай өөр бүтэц, онцлог шинж чанаруудаас үл хамааран ихэнх FPGA нь нийтлэг хандлагыг хуваалцдаг. Аливаа FPGA-ийн үндсэн бүрэлдэхүүн хэсгүүд нь самбар дээрх янз бүрийн блокуудыг холбосон чиглүүлэлтийн сувгуудын шатлал бүхий программчлагдах "оролт/гаралтын блокууд"-аар хүрээлэгдсэн уян хатан програмчлагдсан "логик блок" (CLB) юм.

Нэмж дурдахад эдгээр нь цагийг түгээх, удирдахад зориулагдсан DLL файлууд болон үндсэн блок нь логик нүд байх зориулалтын блок RAM санах ойноос бүрдэж болно. Сүүлийнх нь оролтын функц үүсгэгч, дамжуулах логик, хадгалах элементүүдээс бүрдэнэ. Генераторууд нь хайлтын хүснэгт хэлбэрээр хэрэгждэг бөгөөд танилцуулгаас хамаарна. Жишээлбэл, Xilinx Spartan II нь 4 оролтын LUT-тэй бөгөөд тус бүр нь 16X1 битийн синхрон RAM-аар хангадаг бөгөөд тэсрэлт горимд өгөгдөл авахын тулд олонлогчийг ээлжийн регистр болгон ашигладаг. Хадгалах элементүүд нь гохын ирмэг эсвэл слайдын түвшинд мэдрэмтгий байдаг.

  1. Арифметик логик нь бүрэн нэмэгчийг ажиллуулах, логик зөөвөрлөх шугамыг хуваарилах XOR хаалга агуулдаг.
  2. I/O блок ба чиглүүлэлтийн матриц. Энэ блок нь дохиоллын олон төрлийн стандарт, интерфейсийг дэмждэг оролт, гаралттай.

Үндсэн I/O блокыг доор үзүүлэв.

Оролт ба гаралтын зам дахь буферууд дохиог дотоод логик болон гаралтын дэвсгэр рүү шууд эсвэл флип-флопоор дамжуулдаг. Тэдгээрийг хэрэглэгчийн тодорхойлж, гаднаас суулгаж болох олон төрлийн дэмжигдсэн дохионы стандартад тохируулах боломжтой.

Чиглүүлэлтийн матриц

Аливаа угсрах шугам дээр удаан сегмент нь нийт бүтээмжийг тодорхойлдог. Чиглүүлэлтийн алгоритмыг оновчтой гүйцэтгэлд хүрэхийн тулд хамгийн үр дүнтэй замыг төлөвлөхөд ашигладаг. Чиглүүлэлт нь өөр өөр CLB-уудын хооронд орон нутгийн, ерөнхий зориулалтын чиглүүлэлт, блокууд болон CLB-уудын хоорондох оролт гаралтын чиглүүлэлт, гүйцэтгэлийг нэмэгдүүлэхийн тулд тусгай дохионы ангиудад зориулагдсан чиглүүлэлт, маш том сэнс бүхий цаг болон бусад дохиог түгээх Global Routing зэрэг янз бүрийн түвшинд явагддаг. гарч. FPGA гэр бүлүүд нь тархсан RAM LUT-ийг нөхөх том RAM блокийн бүтэцтэй байдаг бөгөөд тэдгээрийн хэмжээ нь өөр өөр FPGA төхөөрөмжүүдийн дунд өөр өөр байдаг.

FPGA дизайн нь ямар ч VLSI системтэй үндсэндээ ижил хандлагыг агуулдаг бөгөөд үндсэн үе шатууд нь дизайн, зан төлөвийн симуляци, синтез, синтезийн дараах симуляци, орчуулга, зураглал, чиглүүлэлт, дараа нь цаг хугацааны симуляци, статик цагийн шинжилгээ зэрэг дүн шинжилгээ юм. Компьютер дээр загвар нь эмх цэгцтэй, плитадсан мэт харагдах боловч бодит байдал дээр байршил, чиглүүлэлт муу байдаг тул гүйцэтгэл муутай байдаг.

FPGA-ийн гүйцэтгэлийг сайжруулахын тулд та үргэлж илүү олон транзистор ашиглаж болно. Үйлчилгээний талбай өндөр. Илүү олон транзистор суурилуулах нь том хэмжээний дизайн хийх боломжтой гэсэн үг юм. Нэвчилт нь FPGA-ийн хувьд ноцтой асуудал бөгөөд нэгэн зэрэг сонирхолтой юм. Асинхрон FPGA архитектурыг ашиглах нь дамжуулах технологитой хослуулснаар хамгийн сайн үр дүнг харуулдаг бөгөөд энэ нь дэлхийн орцыг багасгаж, дамжуулах чадварыг сайжруулдаг.

Хаалганы чанар ба асуудал

FPGA-д ачаалагдах бүрт код ил гарч байх ёстой тул системийн аюулгүй байдлын асуудал үргэлж чухал байсаар ирсэн. Энэхүү уян хатан чанар нь FPGA-г үйлдвэрлэлийн явцад хортой өөрчлөлтөд өртөмтгий болгодог тул бит урсгалын шифрлэлт яг цагтаа аварсан.

Ихэнхдээ туршлагагүй дизайнерууд болон хэрэглэгчид FPGA нь тэдний загварт хэр хүчтэй тохирох вэ гэсэн асуудалтай тулгардаг. Үйлдвэрлэгчид ихэвчлэн "хаалганы тоо" гэх мэт хэмжүүрүүдийг өгдөг. Жишээлбэл, Xilinx FPGA програмчлал нь FPGA багтаамж, хамгийн их хаалга, санах ойн хамгийн их бит, ердийн хаалганы мужийг хэмжихэд 3 хэмжигдэхүүнийг ашигладаг. Тохиромжтой байх тусам загваруудын хооронд шилжих нь арай хялбар боловч архитектурын олон талт байдал, гүйцэтгэлийн ялгаатай байдлаас шалтгаалан үйлдвэрлэгчдийн хооронд үнэн зөв харьцуулалтыг санал болгодоггүй.

Хамгийн сайн үзүүлэлт бол өгсөн логик нөөцийн төрөл, хэмжээг харьцуулах явдал юм. Нэмж дурдахад, дизайнер нь төхөөрөмжөөс яг юу шаардлагатай байгааг бүрэн ойлгох ёстой, учир нь үйлдвэрлэгчид ажилдаа хамгийн бага өөрчлөлт оруулах шинж чанаруудаар сайрхах болно. Жишээлбэл, Altera-ийн Stratix II EP2S180 нь ойролцоогоор 1,86,576 4 оролттой LUT-тэй бол Xilinx Virtex-4 XC4VLX200 нь 1,78,176 тус тус агуулдаг. Гэсэн хэдий ч хэрэв загварт зөвхөн 177k LUT шаардлагатай бол энэ нь хангалттай байх болно.

Хэрэв RAM нь загвар зохион бүтээгчийн хувьд хүсүүштэй хэмжүүр бол 6Mbit Xilinx XC4VLX200 эсвэл 9Mbit Altera EP2S180 аль нь ч сурталчилгаа багатай, хуучин 9.9Mbit XC4VFX140 загвараас илүүдэхгүй.

Програмчлалын хэл, програм хангамж

Эхлэгчдэд зориулсан Altera FPGA програмчлал нь хэл сонгохоос эхэлдэг. C, C++ эсвэл System C сонголт нь хамгийн том төхөөрөмжүүдийн чадавхийг ашиглах боломжийг олгодог бөгөөд үүний зэрэгцээ бодит хөгжлийн графикийг бий болгодог. FPGA дизайнд C-г ашиглах чадварыг Handle-C гэх мэт хэрэгслээр олон жилийн турш нээлтийн ирмэг дээр байсан HLS (High Level Synthesis) олгодог. Энэ нь саяхан бодит байдал болж, томоохон үйлдвэрлэгч Altera болон Xilinx нар өөрсдийн Spectra-Q болон Vivado HLx хэрэгслийн багцад HLS-ийг санал болгож байна.

FPGA дизайны талаар гүнзгий ойлголтгүй FPGA-ийн тусламжтайгаар гүйцэтгэлийн өсөлтийг хүсч буй програм хангамж хөгжүүлэгчдэд зориулагдсан OpenCL зэрэг C-д суурилсан анхан шатны Altera FPGA програмчлалын хэд хэдэн хувилбарууд байдаг.

HDL-ийн нэгэн адил HLS нь уламжлалт HDL-ийн нэгэн адил C хэл дээрх FPGA програмчлалын аргыг ашиглахад хязгаарлалттай байдаг. Жишээлбэл, системийн дуудлагыг нэгтгэх, хэрэгжүүлэхэд хэцүү байдаг, учир нь та бүх зүйл хязгаарлагдмал, тогтмол хэмжээтэй эсэхийг шалгах хэрэгтэй. HLS-ийн нэг сайхан зүйл бол та өөрийн хөвөгч цэгийн алгоритмыг боловсруулах боломжтой бөгөөд хөвөх цэгийг тогтмол цэг рүү хөрвүүлэх HLS хэрэгсэл байдаг.

Xilinx программ хангамжаар FPGA програмчлах нь тийм ч хэцүү биш юм. Та үүнийг Xilinx-ийн бүтээгдэхүүнийг үнэ төлбөргүй эсвэл тухайн загварт тохирсон үнээр худалдаж авах боломжтой. Та профайл вэбсайт дээрх видеог үзэх боломжтой бөгөөд энэ нь ашиглалтын журмыг тодорхой харуулсан болно. Програмчлагдах хаалганы массив хайхдаа сонгох боломжтой бүх компаниудаас Xilinx бол хамгийн шилдэг нь юм. Тэд энэ бүтээгдэхүүнийг бүтээгчид бөгөөд олон жилийн туршид үүнийг сайжруулсаар ирсэн. Брэнд программ хангамж нь урьд өмнөхөөсөө илүү хүчирхэг болсон.

Дизайн үе шатууд

Платформыг интернетэд сайн төлөөлдөг тул FPGA програмчлалын сургалтыг онлайнаар хийж болно. FPGA-г тохируулахдаа эхний алхам бол дижитал электроникийн мэдлэг шаарддаг хэлхээний загвар юм. Програмчлалаас ялгаатай нь програмын бүтэц тодорхойгүй бол кодыг зүсэж эхлэх нь илүү хэцүү байдаг. Юу хэрэгжүүлэх ёстой нь тодорхой болмогц бид Verilog эсвэл VHDL хэлүүдийн аль нэгийг ашиглан хэлхээг дүрсэлж эхэлдэг.

Парадигмын өөрчлөлтийг харуулсан баримт бол тэдгээрийг FPGA програмчлалын хэл гэж нэрлэдэггүй, харин тайлбар хэл юм. Тоон хэлхээний туршилтын нарийн төвөгтэй байдлаас шалтгаалан энэ үе шатанд тоног төхөөрөмжийн зан төлөвийг дуурайдаг тестийн банкуудыг ихэвчлэн ашигладаг. Энэ төрлийн хэрэгсэл нь дохионы төлөвийг ямар ч үед харж, хүссэн үр дүндээ шилжих шилжилт байгаа эсэхийг шалгах боломжийг олгодог.

Гурав дахь шатыг хэлхээний синтез гэж нэрлэдэг бөгөөд гол үе шатуудын нэг юм. Энэ нь ашиглах элементүүд болон тэдгээрийн хамаарлыг тайлбарын файлын дагуу сонгоно. Энэ алхам нь ихэнх тохиолдолд ажлыг хөнгөвчлөх, автоматжуулах хэрэгсэл шаарддаг.

Техник хангамж ба тохиргоо

Intel Quartus Prime Software Suite Lite Edition нь FPGA дизайны програм хангамж юм. Татаж авахад үнэ төлбөргүй, лицензийн файл шаардлагагүй тул эхлэгчдэд тохиромжтой. Та програмыг үйлдвэрлэгчийн вэбсайтаас татаж авах боломжтой. Файлууд нь том хэмжээтэй (хэдэн гигабайт) бөгөөд татаж авах, суулгахад удаан хугацаа шаардагдана. Цаг хугацаа болон шаардагдах дискний зайг багасгахын тулд зөвхөн хэрэглэгчийн даалгаварт шаардлагатай зүйлсийг татаж авахыг зөвлөж байна. Файлуудыг татаж авахыг хүсэх үед "Бүгдийг сонгох" гэснийг болиулж, зөвхөн Quartus Prime болон Cyclone V дэмждэг төхөөрөмжүүдийг сонгоно уу.

Төсөл үүсгэх алгоритм:

  1. Шинэ төслийн шидтэнг нээнэ үү.
  2. Дараах > Лавлах > Нэр > Дээд түвшний объектыг сонгоно уу.
  3. Төслийг байрлуулах лавлахыг сонгоод, жишээ нь "Blink" болон intelFPGA_lite хавтсанд байршуулах боловч та үүнийг хаана ч байрлуулаад "Дараах" дээр дарж болно.
  4. Лавлах үүсгэхийг хүсэхэд Тиймээ сонгоно уу.
  5. "Хоосон төсөл" -ийг сонгоод "Дараах" дээр дарна уу.
  6. Файл нэмээд "Дараах".
  7. Дараахыг сонгон гэр бүл, төхөөрөмж, самбарыг тохируулна уу: гэр бүл - Cyclone V, төхөөрөмж - Cyclone V SE, суурь, төхөөрөмжийн нэр: 5CSEBA6U2317.
  8. Тодорхой төхөөрөмжийг сонгохын тулд 5CSEBA6U2317 гарч ирэх хүртэл дэмжигдсэн төхөөрөмжүүдийн жагсаалтыг харахын тулд дээш/доош сумыг дарах хэрэгтэй.
  9. Хэрэглэгч төхөөрөмжийн бүтэн нэрийг харахын тулд "Нэр" талбарыг өргөтгөх шаардлагатай байж магадгүй, "Дараах" дээр дарна уу.
  10. EDA хэрэгслийг тохируулахдаа тэд стандарт хэрэгслийг ашигладаг тул ямар ч өөрчлөлт гарахгүй тул "Дараах" ба "Дуусгах" дээр дарна уу. Хураангуй дэлгэц гарч ирнэ.
  11. Verilog суулгасан HDL файлыг HDL хэлбэрээр үүсгэнэ үү.
  12. Файл таб (үндсэн цонх) руу очоод Шинэ гэснийг сонгоно уу.
  13. Verilog HDL файлыг сонгоод OK дарна уу.
  14. "Файл" > "Хадгалах" гэснийг сонгоно уу.
  15. Файлын нэрийг сонгоно уу. Энэ нь дээд түвшний файлын нэр бөгөөд төслийн нэртэй ижил байх ёстой.
  16. "Хадгалах" дээр дарна уу.
  17. Verilog модулийг үүсгэ.
  18. Доорх Verilog кодыг хуулаад blink.v цонхонд буулгаад кодын файлыг хадгална уу.
  19. "Шинжилгээ ба синтез" дээр хулганы баруун товчийг дараад "Эхлүүлэх" дээр дарж Verilog кодын синтакс шалгаж, синтез хийнэ.

Хэрэв процесс амжилттай дууссан бол Analysis and Synthesis-ийн хажууд ногоон тэмдэглэгээ гарч ирнэ. Хэрэв алдаа гарсан бол синтаксийг шалгаад дээрх кодын блоктой яг таарч байгаа эсэхийг шалгаарай.

Бүх туршлагатай програмистууд нарийн төвөгтэй програмууд, тэр ч байтугай дэд программууд ч анх удаа зөв ажиллахгүй гэдгийг мэддэг. Туршлагад тулгуурласан хүний ​​хийсвэрлэх чадвар нь түүнд хамгийн жижиг нарийн ширийн зүйлд санаа зовохгүйгээр шийдлийг олох боломжийг олгодог. Гэхдээ хатуу үнэн бол программуудыг суулгасан физик систем нь бүх зүйл ажиллахаас өмнө жижиг нарийн ширийн зүйлийг анхаарч үзэхийг шаарддаг.

Уламжлалт үйлдвэрлэгчид болон бие даасан хэрэгсэл үйлдвэрлэгчдийн FPGA хөгжүүлэлтийн програм хангамжийн хэрэгслүүдийг сайжруулснаар: Synplicity, FPGA өдрөөс өдөрт түгээмэл болж байна. Одоо FPGA-ууд нь хэрэглэгчдэд шаардлагатай функцүүдэд зориулсан тусгай техник хангамжийг оруулж эхэлсэн бөгөөд энэ нь үйлдвэрлэгчдийн зардлыг бууруулж байна. Тиймээс ирээдүйд уян хатан цөмтэй хатуу болон хямд өртөгтэй системүүдийн хооронд өрсөлдөөн үүсч магадгүй юм. FPGA-ууд улам бүр түгээмэл болж байгаа тул ойрын ирээдүйд зардал улам буурах төлөвтэй байна.

Үйлдвэрлэгчид FPGA-г нэгдсэн хэлхээнд суулгаж, эрлийз төхөөрөмж бүтээхээр туршилт хийж эхэлжээ. Харилцан холболтын чиглүүлэлт дээр анхаарлаа төвлөрүүлж байгаа бөгөөд CLB архитектурт бага өөрчлөлт гарч байна. FPGA-ууд процессоруудыг үргэлжлүүлэн ажиллуулснаар шинэ үеийнхэнд дижитал дизайны техник хангамжийн мэдлэг төдийгүй нэг удаагийн FPGA програмчлалын процесст хөгжүүлэгчийн туршлага шаардлагатай болно. Ерөнхийдөө FPGA нь ASIC төхөөрөмжүүдийн зах зээлд эзлэх хувийг эзэлж, янз бүрийн домэйны олон програмуудыг хамарсан давамгайлах технологи болох төлөвтэй байна.

Хэдэн жилийн өмнө "Чи юу хийдэг вэ?" Та хөмсгөө зангидаж "компьютерийн ухаантай" гэж хэлж болно. Энэ хангалттай байсан. "Компьютерийн өөртөө итгэлтэй хэрэглэгч" гэсэн анкет дээрээ сайрхаж чадах бэлтгэлгүй хүмүүст нарийн ширийн зүйлийг тайлбарлах нь илүү олон асуултыг төрүүлэх тул шаардлагагүй байв. Гэвч цаг үе өөрчлөгдөж, бичиг үсгийн түвшин нэмэгдэж, одоо "өөртөө итгэлтэй компьютер хэрэглэгч" нь атавизм болсон үед түүнийг нэгэн цагт түгээмэл хэрэглэгддэг "компьютерийн мэргэжилтэн" гэдэг үг дагаж байна.

Программист, хөгжүүлэгчийн мэргэжлүүд нь нийтлэг зүйлтэй байдаг бөгөөд өдөр тутмын амьдралд эдгээр үгсийг ижил утгатай үг болгон ашигладаг боловч үргэлж анзаарагддаггүй ч ялгаа байдаг. Тэгэхгүй бол яагаад программ хангамж хөгжүүлэгч, компьютер судлаач, программист гэх мэт ойлголтууд гарч ирэв?

Програмчлал

Өнөөдөр хэнийг программист, хэнийг хөгжүүлэгч гэж нэрлэдэг талаар тодорхой дүрэм журам байдаггүй. Тиймээс гарал үүсэл рүүгээ эргэхээс өөр гарц байхгүй.

Компьютер, интернет, хөдөлгөөнт холбоо, түүнчлэн одоо олон нийтийн эзэмшилд байгаа бусад олон гайхалтай зүйлс, хэрэв цэргийнхэн зохион бүтээгээгүй бол эрт орой хэзээ нэгэн цагт тэдний эмзэг жигүүр, хяналтан дор оров. Хэрэв ямар нэг зүйл нисч, буудаж, дэлбэрэх эсвэл дайсны ижил төстэй үйлдлээс хамгаалж чадвал танд эрдэмтдийн баг байна. Гарын үсэг зурж, хүлээн авна уу. Өндөр технологийн эрин үед эрдэмтэнгүй цэрэг хүнд хэцүү байх болно - эцэст нь байлдааны гутал, хуяг зэрэг жижиг зүйл хүртэл технологийн маш их мэдлэгийг шингээсэн байдаг. Лазер буу болон тив хоорондын пуужингийн програмчлалын талаар бид юу хэлж чадах вэ!

Хэрвээ төрөөс санхүүжилт олоход түлхэц өгсөн хэрэгцээ байгаагүй бол хэдэн арван жилийн дараа компьютер, интернет бидний мэдэлд байх байсан нь тодорхойгүй байна. Тиймээс амжаагүй хүмүүс дайны галд шинэ технологи төрүүлж, төрүүлсээр байгаа түрэмгийлэгч улсуудад сэтгэлээрээ талархаж чадна.

Ирээдүйд хэдэн арван жил шилжсэн ч гэсэн Билл Гейтс гараждаа 17 метр урт, 2.5 метрээс дээш өндөртэй, 765 мянган хэсгээс бүрдэх, 15-ыг ашиглан синхрончлогдсон компьютер угсарна гэж төсөөлөхөд хэцүү хэвээр байна. -метрийн босоо амтай бөгөөд 1941 онд IBM-тэй байгуулсан гэрээний дагуу Харвардын хэд хэдэн математикчид бүтээсэн Марк-1 шиг 5 морины хүчтэй цахилгаан мотороор хөдөлдөг.

Энэ нь хэтэрхий их хөдөлмөр, тархи их шаарддаг байсан тул компьютерийг бүтээсэн хүн бүр үүнийг "бүжиглэж" байсан түүхтэй. Цөөн тооны компьютер байсан - дайны төгсгөлд ижил "Колосси" -ын 10 нь л ажиллаж байв. Хэдэн жилийн дараа анхны арилжааны загварууд гарч ирэв - жишээлбэл, IBM 701 (эхний жил 19 ширхэг зарагдсан), эсвэл IBM 650 (эхний жилдээ 450 ширхэг зарагдсан). шинжлэх ухааны лаборатори, агаарын тээврийн компаниуд, төрийн байгууллагууд.

Хэдийгээр 1965 оноос хойш америкчууд "ердөө" 18 мянган долларын үнэтэй олон мянган PDP-8 үйлдвэрлэж эхэлсэн ч санах ойн бүтэц нь төгс бус тул үүнтэй холбоотой олон тооны нөөц шаардсан төслүүд амжилтгүй болсон. Тиймээс тэр үеийн програмчлал нь тийм ч амар биш байсан (сайн байна уу техник хангамж) бөгөөд одоогийнх шиг тийм ч тохиромжтой, хүртээмжтэй байсангүй. Програмчлалыг мэддэг хэдхэн хүн байсан. Эндээс ямар нэг юм олж авах хүн бүр ч цөөн. Энэ бүх хугацаанд программист "нерд", ижил цамц өмсдөг, номын санд тогтмол ажилладаг хүн гэсэн нэр хүндийг зохих ёсоор хадгалсаар ирсэн. Олон түмэнд хүртээмжгүй, маш явцуу салбарт ажилладаг энэ ертөнцөөс гарсан гайхамшигт хүн.

Түүхээс харахад машинтай хэрхэн ярихыг мэддэг тархитай хүмүүс зөвхөн цэрэг-аж үйлдвэрийн цогцолбор эсвэл шинжлэх ухаанд ажилладаг байв. Эндээс жинхэнэ программистЭнэ нь түүхэн утгаараа батлан ​​хамгаалах/зэвсгийн цогцолбор, зарим дизайны товчоо, шинжлэх ухааны хүрээлэнгийн тооцоолох хүчин чадал, роботын программ, сансарт нисэх пуужин гэх мэт програм бичдэг хүн юм. Зөвхөн үндэсний хэмжээний чухал асуудал. Хамгийн их инноваци. Мөнгөний сонирхол нэг бол байхгүй эсвэл хоёрдугаарт ордог. Аполлон хөтөлбөрт хичнээн их мөнгө зарцуулсан нь хамаагүй шиг компьютер, интернетийн төлөө зохион бүтээгчдэд хэдэн тэрбум доллар өгсөн нь олон нийтэд хамаагүй. Харин одоо хүн бүр халаасандаа компьютертэй, саран дээр туг, гутлын хээтэй. Баячуудыг хэн ч дурсдаггүй, харин шинийг санаачлагчдыг бүгд дурсдаг, учир нь эхнийх нь хэрэглэдэг, нөгөө нь өгдөг.

Хөгжил

Арилжааны програмчлал нь цэвэр хэлбэрээр байгаагүй бөгөөд одоо ч байхгүй - "програмчлал" гэдэг үг энд огт тохирохгүй байна. Энд хөгжил- өөр нэг зүйл. Майкрософт, IBM, HP, Apple болон бусад компьютерийн анхдагчид зах зээлийг эзэгнэж, асар их мөнгө олж байсан нь шинэ бүтээгдэхүүн бүр урагшлах алхам байсныг өөрчилж чадаагүй юм. Тэд шинэ, энгийн бус асуудлыг шийдсэн.

Торвалдс програмист байсан уу? Мэдээжийн хэрэг. Эцсийн эцэст тэрээр Linux-д зориулсан цөмийг бичсэн. Энэ тохиолдолд тэрээр ажлынхаа явцад шилдэг туршлага, хөгжлийн арга зүйг ашигласан эсэх (жишээлбэл, хувьсагчдыг зөв нэрлэсэн эсэх, санах ойг оновчтой ашигласан эсэх гэх мэт) огт хамаагүй. Хамгийн гол нь энэ нь ажилладаг. Мөн ялагчдыг шүүдэггүй. JavaScript-ийг бүтээгч Брендан Эйчийг шүүдэггүй шиг, гэхдээ бодитойгоор үүнд ямар нэгэн зүйл бий.

Суут ухаантай, нэг болон тэгийн хагас цагийн босс Торвалдс, Эйх хоёроос ч илүү ухаалаг програмист хүн мөн үү? Жишээлбэл, тэр онлайн дэлгүүрүүд бичдэг. Тэргүүлэх асуулт: Тусгай хүчинд алба хааж байсан, гэхдээ одоо дэлгүүрт харуул, тусгай хүчний цэрэг эсвэл хамгаалалтын ажилтан хийдэг хүн үү? Олон хамгаалагчид өөрсдийнхөө нүдэнд илүү сайн харагдахын тулд армийн шивээсээ үрж, өөрсдийгөө тусгай хүчнийхэн гэж нэрлэдэг. Мэргэжлийнхээ хажууд "хуучин" гэдэг үгийг тавьдаг хүн ховор. Гэхдээ цөөхөн хэд нь тэд мэргэжлээ алдаж, хамгаалалтад ажилладаг, эсвэл эзэлсэн албан тушаалдаа хэтэрхий хүйтэн байдаг тул бор шувуу руу их буугаар буудаж байгаагаа хүлээн зөвшөөрдөг.

Өнөөгийн зарим програмистууд яг л энэ тусгай хүчний цэрэгтэй адилхан бөгөөд зөвхөн мөнгө олох ажилд оролцож, авьяас чадвараа дэмий үрж байна. Өөрсдийгөө программист гэж нэрлэдэг ч үнэндээ хөгжүүлэгчид (энэ ангилалд мөн улаавтар кодлогч багтдаг) өөр, хамаагүй том хүмүүсийн ангилал байдаг (99%). Тэд өөрсдийн эсвэл өөр хэн нэгний кодыг бичиж, өөрчилдөг, үйлчлүүлэгч, үйлчлүүлэгчидтэй харилцаж, алдаануудыг байнга засдаг - учир нь хөгжүүлэгч үүнийг зөвшөөрөх боломжтой; Тэд санааны төлөө биш, харин мөнгөний төлөө ажилладаг: өнөөдөр нэг залуугийн төлөө, маргааш нөгөө залуугийн төлөө. Хэн илүү өгөх вэ?

Нэг академич “Гүн ухааны диссертаци хувьсгалаар төгсөх ёстой, эс бөгөөс диссертаци биш” гэж хэлсэн байдаг; эсвэл бидний бодлоор програмист хүний ​​ажил технологийн дэвшлээр төгсөх ёстой. Үгүй бол энэ нь програмистын ажил биш юм.

"Нэгдүгээр зэрэглэлийн программ хангамжийн инженер"-ийн ажлын бүртгэлийг төөрөгдүүлэхийг бүү зөвшөөр. Хүний нөөцийн ажилтнууд 25 жилийн өмнө алга болсон улсын маркийг ашиглан юу хийж байгаагаа мэддэггүй. Та хийх ёстой зүйл бол “Та одоо юу дээр ажиллаж байна вэ?” гэсэн тэргүүлэх асуултыг асуухад л хангалттай. Учир нь та маш их хамаарал, тархи няцлах элементүүдээр дүүрсэн, ер бусын оюуны чадвар шаарддаг нүсэр, ойлгоход хэцүү архитектурын тусламжтайгаар хүссэнээрээ цогц хөгжлийг хийж чадна. Гэхдээ энэ бол онлайн дэлгүүр, өөр нэг хуурамч "үйлчилгээ", спам робот, эсвэл бурхан хориглох, хөтчийн тоглоом юм бол тухайн хүн чөлөөт цагаараа програмчлал хийдэггүй бол хөгжил үнэртэх болно. "Газрын тосны ордуудыг хөгжүүлэх" гэсэн хэллэг шиг.

Тиймээс "Та юу хийдэг вэ?" Илүү үнэн зөв хариулт нь "Би програмист хүн, гэхдээ хөгжүүлэгчээр ажилладаг", "Би хөгжүүлэгч, гэхдээ хэзээ нэгэн цагт би програмист болно" эсвэл "Би хөгжүүлэгч, би цавчих" байж болно. байцаа." Нөхцөл байдал буруу бөгөөд хурдан хариулах шаардлагатай бол "программист" -ыг ойлгох боломжтой. хөгжүүлэгчпрограм хангамжийн хувьд энэ үг харьцангуй шинэ юм. Гэтэл аутсорсингийн захад жүүс ууж байхдаа өөрийгөө программист гэж нэрлээд байгаа нь өөрийгөө хуурч байна.