Університет викладає C ++ у стилі DOS, як з цим боротися [закрито]


19

Я багато років займався програмуванням, але хотів отримати диплом, щоб зробити себе більш працездатним. Одного разу вже пройшовши університет, я не вибрав повний 5-річний спеціаліст з інформатики, а більш коротку, більш практично орієнтовану програму інженерії програмного забезпечення .

Я очікував, що це може зосередитись більше на конкретних навичках, ніж на теорії, але все-таки була думка, що університети та професори люблять, щоб речі були правильними, формальними, академічними. Це все-таки наука, правда? Неправильно - мене здивувало, наскільки неохайним було багато курсів ІТ.

У вступному курсі на C ++ ми пройшли тестування на кліше на кшталт "чому глобальні погані" та "чому константи хороші", лише написавши 1-2 програми. Випадкові анекдоти без належного контексту. Матеріали містяться system(pause/cls), getchа заголовки - як conio.hі iodos.h. Одним із завдань було друкувати "символи ASCII" від 32 до 255 , на скріншоті відображати таку таблицю, надруковану за допомогою кодової сторінки Windows-1252, але без згадування про кодування взагалі.

Питання : якщо, здається, університет / професор використовує неповноцінні та / або застарілі інструменти та методи, а зміст, який викладається, є кордоном невірним, то як ви з цим ставитеся конструктивно та з повагою, якщо взагалі?

Деякі відповіді вказують на те, що слід шукати поза програмою, оскільки це лише інструмент для вивчення таких тем, як структура даних та алгоритми. Я погоджуюся з цією ідеєю, але в цьому випадку насправді такого поганого стилю не було. Більшість курсів просто викладають інший "інструмент" без особливої ​​теорії фону або будь-якої "великої картини". Часто відчувалося, що їх швидко зібрали просто заради пропонування такого курсу.


Я затримався з цим і нарешті закінчив. Якість залишалася досить низькою (за кількома великими винятками), і кілька інших студентів скаржилися на це. Як і очікувалося, я дізнався набагато більше з особистих проектів та неповного робочого дня, ніж зі школи, проте процес закінчення школи та етикетка «студент програмного забезпечення» здаються загадково корисними самі по собі!


2
Виходячи з мого власного досвіду, ви навчитесь краще, швидше та дешевше вивчати програмування самостійно та отримувати допомогу на форумах. Не рідкість, щоб навчальні програми застаріли. У Росії Паскаля досі викладають у деяких університетах (хоча мова мені подобається, і я не вважаю це цілком поганим).
WKS

@WKS: Я думаю, що Паскаль є дуже хорошою мовою викладання для вивчення принципів (процедурного програмування), які зовсім не застаріли. Університетські курси не повинні витрачати час на викладання певної мови програмування, а навпаки, викладання парадигм (процедурних, об’єктно-орієнтованих, функціональних, логічних та ін.).
Джорджіо

Так, звичайно @Giorgio, мова програмування, обрана як інструмент викладання, не має значення, проте слід очікувати, що представлені практики програмування є надійними та сучасними.
гламперт

Більшість університетів викладають магістрантів з метою дозволити їм досягти успіху в отриманні ступеня магістра. Більшість магістерських програм навчають студентів-магістрів з метою дозволити їм досягти успіху в отриманні доктора наук. Більшість кандидатських програм мають на меті допомогти вам стати успішним науковим співробітником.
Роб П.

@glampert: Процедурне програмування не змінилося після введення Паскаля. Ще краще, що Паскаль був розроблений як мова викладання, тому він не має безлічі хак, які можуть бути корисними на практиці, але є великим відволіканням при вивченні нових речей. Тож Паскаль є сучасним щодо викладання імперативного програмування. Звичайно, можливо, ви хочете навчити інших парадигм, таких як об'єктно-орієнтована, функціональна, логіка: тоді вам потрібно шукати інші мови, наприклад, Python, Java, Haskell, Scheme, Prolog, ...
Giorgio

Відповіді:


34

Математика та програмування - це абсолютно різні речі. Математика - це наука, програмування - техніка. В академічному світі програмування - це те, що ви повинні знати, щоб ви могли мати справу з реальними речами, що насправді цікаво, а питання - алгоритми.

Кому байдуже, чи компілятор стародавній, і ви використовуєте systemдзвінки? Кого хвилює, якщо у вас Linux, а не Windows? Що ж, професори цього не роблять, це точно. І вони насправді не повинні. Не сподівайтесь стати професійним програмістом на курсах в академічній установі. Це не те, для чого ти туди їдеш.

Це правда, що компілятор, який він очікує від вас, є давнім, а припущення про ОС є анахронічним та проблематичним. Ви можете підняти її, і, можливо, це буде вирішено. Але не тому, що курс є несумісним із галуззю, а скоріше тому, що він викликає негайні труднощі для студентів. Перейдіть, знайдіть цей старий компілятор зараз і запустіть його на вашому MacBook ...

Взагалі академічні дослідження не повинні витрачатися даремно на вивчення C ++ та Android, ви повинні вивчати фактичні матеріали з інформатики там. Ви не отримаєте іншого шансу на це. Android? Завантажте Eclipse за допомогою ADT і почніть працювати над ним вдома, як я. Для цього не потрібна школа.

Я думаю, що не варто чекати розвитку техніки від університетів. Особливо не дослідницькі університети. Можна сказати, що місце, яке пропонує лише бакалаврів, повинно бути більш орієнтованим на галузь, а дослідницькі університети - хочуть дослідників. Викладачі шукають потенційних аспірантів та кандидатів аспірантів, а не відмінних програмістів. Тому я думаю, ви повинні відповідно встановити рівень очікувань.


3
У мене є одна проблема з вашою відповіддю: "Взагалі академічні дослідження не повинні витрачатися даремно на вивчення C ++ та Android, ви повинні вивчати фактичні матеріали з інформатики там". - Не знаючи принаймні однієї мови програмування, CS-речі не мають сенсу, і застосувати їх не так вже й просто.
Ізката

4
@Martin і izkata - програмування під DOS в C ++ з використанням компілятора попереднього століття не означає, що ви не знаєте програмування. Це просто означає, що ви використовуєте застарілі інструменти - але якщо вам потрібно реалізувати дерева RB - кого це хвилює? Він є застарілим для галузі, але програми працюють і роблять те, що їм потрібно робити - це досить добре.
littleadv

3
@littleadv - ОП написала "що здається древнім відповідно до того, що я прочитав". що підказує мені, що йому довелося шукати деінде, ніж відповідні роздаткові матеріали, щоб дізнатись, що це застаріло і не переноситься. Звичайно, багато хто, якщо не всі компілятори, мають зайві нестандартні бібліотеки, але якщо ви навчаєте тих, не розповідаючи, що вони нестандартні, я думаю, що це погано - і це враховує як нові речі, так і старі, і навіть для C ++ 11 матеріалів, оскільки на даний момент C ++ 03 є останнім широко використовуваним стандартом.
Steve314

3
@littleadv - Ну, можливо, тоді нам доведеться погодитися погодитися. Хоча я міг би подумати, що комп'ютерному науковцю потрібно бути педантичним щодо деталей, і кілька секунд потрібно, щоб зауважити, що щось нестандартне одночасно відповідає цьому і ні в якому разі не має великих труднощів. Як ви почуваєтесь, якби професор CS використовував власні спеціальні позначення, змішані з математикою, і не вказував на це? Адже це ще один аспект того самого питання - чи здатні вас зрозуміти інші вчені-комп’ютери. Код читають як люди, так і компілятори.
Steve314

4
@littleadv - Я ніколи не стверджував, що ОП сказали conio.h є стандартним - я припустив, що він, можливо, не сказав, що це було нестандартно, і навіть тоді сказав: "Якщо вони дадуть зрозуміти, які є непереносні трюки, це, мабуть, ДОБРЕ.". Те, як мене навчили навіть базовій науці, полягає в тому, що ви використовуєте стандартні терміни, або якщо ви повинні використовувати нестандартні терміни, ви визначаєте, що вони означають. На моїх шкільних уроках природознавства навіть використання сантиметрів було проти правил - вони не є одиницями СІ. Використання нестандартних бібліотек, мені здається, нічим не відрізняється. Значення коду в інформатиці повинно бути однозначним.
Стів314

19

Інформатика - це програмування того, що фізика - столярна справа.

Якщо ви хочете стати столяром, вивчення фізики не збирається цього зробити. Це навчить вас багато цікавого, чого ви зможете застосувати до своєї роботи, але це не навчить вас бути хорошим столяром. Для цього вам доведеться навчитися ремеслу столярної справи.

Так само, якщо ви хочете стати хорошим програмістом, вам доведеться навчитися майстерності програмування . На жаль, не існує установи, яка б видавала сертифікацію будь-яких видів. Отже, це щось, що вам доведеться робити самостійно, незважаючи на допомогу людям, яких ви зможете знайти. Для вас це означає повторення та рефлексію. Напишіть багато коду, а потім поверніться, щоб переглянути його. Також потрібен час, щоб прочитати код інших людей. Подумайте про участь у проектах з відкритим кодом.

Університети не дуже піклуються про програмування, а ще менше про деталі, які зміниться протягом найближчих років. Що ви бачите у вашій школі, це те, що вони вибрали деяке середовище програмування (погане, але це не так важливо) і тепер покажіть це вам, щоб у них з'явився контрольний кадр, в якому вони можуть навчити вас різних методик програмування. Можна стверджувати, що система відліку є поганою і що навіть мова є дивним вибором. З їхньої точки зору, мабуть, це не має значення, оскільки це обрано досить довільно.


2
Як щодо фізики до інженерії? Програмісти повинні розуміти принципи CS, щоб застосовувати їх під час проектування програм, яким інженер повинен розуміти фізику для проектування будівель, літаків та хімічних процесів.
Джей Елстон

3
@JayElston: Фізика - це інженерія, те, що комп'ютерна наука - це інженерія програмного забезпечення, яка включає аналіз, проектування, планування, впровадження, контроль якості тощо. Програмування саме по собі справді більше мистецтво отримувати матеріал, щоб робити те, що ти хочеш, тоді як інженерія починається з з'ясування того, що ви насправді хочете зробити.
back2dos

Мені все одно подобається одна з цитат моїх професорів "Інженерія - це мистецтво застосування науки для вирішення проблем".
Кріс О

1
@Chris: Можливо, тоді наука - це мистецтво створення нових проблем.
JasonTrue

@JasonTrue: Ну, можна стверджувати, що наука - це мистецтво створювати кращі проблеми;)
back2dos

9

У навчанні "стилю DOS" немає нічого поганого. Я впевнений, що багато стариків тут почали працювати на DOS, або навіть із більш ранніми операційними системами, писати програми на основі рядків і налагоджувались чудово. Світ обчислень змінюється настільки швидко, що я не зациклювався на конкретних характеристиках, таких як бібліотека для чого використовувалася.

Насправді, я підозрюю, що в нас є світ, який переповнений програмістами, які можуть сказати вам, що таке ін'єкція залежності , але намагаються відповісти FizzBuzz , тому що багато програмістів не проводять багато часу на тому самому базовому рівні.

Це здається, що це вступ до програмування, тому, по суті, не турбуйтеся про це. Вивчіть основи, і ви все зробите добре. Якщо вас цікавлять інші платформи, вивчіть їх самостійно. Це чудова річ у програмуванні.


5

Як можна з цим боротися? Завантажте програми програмування електронних книг або потокове відео, спробуйте самі приклади. Не залежать від ваших професорів. Програмування вивчено самостійно.


1
Програмування - це як грати на фортепіано. Вам потрібен майстер, який навчить вас робити речі, і багато практики, щоб робити їх добре. Я вважаю, що дуже мало автодидактичних піаністів у світі.

7
Яка дивна аналогія, безумовно, є багато висококваліфікованих програмістів для автодидактики.
ocodo

@Slomojo Правда, і я зустріла декілька з них. Вони дивна порода, відмінна у тому, що вони знають. Важко полягає в широті проблем, з якими вони стикаються. Іноді проблема має набагато коротший шлях до вирішення, коли ви знаєте якийсь куточок інформатики, і все ж, ці талановиті люди, як правило, продовжують забивати це єдиним способом, який вони знають, що зрештою виглядає як груба сила. Наприклад, проблема, яку "важко вирішити" самоучці, вирішила ДФА за два дні з тестуванням (у TCL / TK для завантаження!). Через два тижні вони все ще не зрозуміли цього, з поясненням.
Едвін Бак

4

Ну багато університетів мають шалених професорів програмування. Я пішов до однієї з вищих шкіл моєї країни і дуже багато навчився присідати з програмування. Я думаю, більшість унівців подібні до того, що справді хороші програмісти обирають краще оплачувану роботу (а не викладання). Ви повинні взяти на себе невеликий проект і спробувати його кодувати самостійно. Ви можете отримати поради з багатьох форумів, таких як цей. Це може бути кращим способом вчитися в довгостроковій перспективі.


Гарна порада, звичайно, я повністю згоден. Це просто диплом ... :)
Toerndev

@gaidal: Так! це те, що я вийшов із середньої школи - торгова марка: P (хоча я сподівався на набагато більше, коли я приєднався)
Jan S

2
Університет - це не про навчання програмуванню, а про вивчення концепцій мов програмування та, загалом, інформатики. Коли мені довелося робити свій проект для операційних систем в університеті, мені сказали: це буде в С, книга в бібліотеці, іди діставай книгу і вивчи її. Програмування - це практика, і це не так, щоб університет навчав вас цього.
Джорджіо

1
Про краще оплачувані робочі місця це правда. Мій друг, який викладає в університеті, одного разу поскаржився: "Ми навчаємо їх програмуванню, а потім вони заробляють більше, ніж ми. Це повинно бути навпаки!"
Джорджіо

3

Я думаю, що університет повинен викладати абстрактні концепції мов програмування, алгоритмів тощо, і не повинен бути місцем, де ви навчаєтесь програмуванню: програмування - це дуже практична діяльність, і ви можете навчитися цьому лише займаючись.

Під час навчання я засвоїв основи програмування в Паскалі, потім у мене був один проект на C (ми повинні були вивчити мову самостійно), а потім пройшов курс з мов програмування (процедурний, об'єктно-орієнтований, функціональний, логічний) . У фольклорі було те, що у MSDOS ви маєте conio.h або далекі покажчики, яких у вас немає в системі UNIX. Це були речі, про які ми б обговорювали студенти за пивом, це не те, що ви обговорювали під час занять, бо це було не так важливо. Викладання в університеті фокусується на абстрактних, загальних знаннях і уникає вникання в деталі: приклади та деталі подаються лише для ілюстрації загальних речей.

Приклад, який ви давали про ASCII проти Unicode та MSDOS conio.h, означає, що кожне середовище програмування має свій особливий спосіб роботи та організації роботи. Якщо ви програмуєте на C ++ у Visual Studio, вам доведеться використовувати інші бібліотеки, деяких з яких не можна знайти, наприклад, в Linux. Тож якби курс проходив у Windows 7 / Visual Studio, деякі люди могли б поскаржитися, що було б краще це зробити на Linux / GCC. Але, IMO, це не суть.

Отже, я думаю, ви повинні намагатися не відволікатися на деталі і концентруватися на загальних концепціях, які охоплюються курсом. Наприклад, що для більшості мов програмування вам знадобиться деяка бібліотека для реалізації консольного вводу / виводу, і, враховуючи середовище програмування, вам доведеться вирішити свою проблему за допомогою підручних інструментів. Можливо, це звучить для вас цілком очевидно, і у вас складається враження, що ви насправді чогось не вчите, бо у вас вже є деякі попередні знання (це може статися), але я не склав враження, що ви відвідуєте поганий курс.


Дякую, я маю на увазі тоді, що ви не вважаєте, що це достатньо, щоб сказати, що це поганий курс. Зі сторони, я не мав на увазі, що це повинно бути в Linux, тільки що він може докласти зусиль, щоб повідомити студентів про відмінності та про те, що існує стандарт.
Toerndev

Я згоден з вами, що було б непогано проінформувати про інші системи. Це також залежить від досвіду вчителя: вони можуть почувати себе незручно, говорячи про навколишнє середовище, з яким вони не знайомі. Наприклад, я вдома з Windows і Linux, але я б уникав MacOS, оскільки, навіть якщо це може бути дуже класна ОС, я ніколи її не використовував. Можливо, ви можете спробувати і запитати, чи вони можуть дати коротке порівняння між різними середовищами C ++: лише кілька прикладів, щоб зрозуміти, що може бути різним, а що залишається тим самим. Наприклад, ви можете грати з sizeof на MSDOS та Linux.
Джорджіо

2

Університети дають основи. Як тільки він міцний, ви можете будувати хмарочоси поверх нього. Я навчився BASIC, C та C ++ протягом моїх днів коледжу. Пізніше, коли я робив проект у Visual C ++, я вважав, що це зовсім інший світ. Пізніше я зрозумів різницю між рамками та мовами.

Виберіть правильний університет, де вони дадуть цілеспрямовану розробку бажаного обчислювальної галузі. Що може допомогти вам пізніше у вашій кар’єрі.


2

Роздруковані роздруківки system("");- насправді досить чортова гарна річ! Я вражений тим, що люди нині нічого не знають про ці функції.

system("pause"), і ви позбудетесь усіх функцій getX. system("cls"), і ви щойно зберегли одну сторінку коду. system("mkdir foo")і ви щойно зберегли 2 сторінки розподілу буфера, розбиття шляху, _makepath_ss, 256 обмежень шляху, тони помилок і так далі.

Більше того, код настільки простий, що мавпа зрозуміє це.

 if(!system("mkdir foo"))
     //booo and exit`

Школа поліморфних збочень - це те, що має бути заборонено законом.

PS: Більше того, з усією повагою мені важко визнати, що людей навчають С ++ за винятком і віртуальне все, як ДОБРЕ ДІННЕ, тому що в ньому більше гатшів і мін, ніж ви можете собі уявити, і навіть Б'ярн Струструп евангелізує винятки, оскільки щось супер легко і безпечно, а насправді вони є ядерною міною.

Дивіться аналіз про Misra-C ++ та JSF-C ++. І http://blogs.msdn.com/b/oldnewthing/archive/2005/01/14/352949.aspx . Мені вже лінь знайти всі статті, що залишилися сьогодні.

З урахуванням сказаного, я розробник c ++, і мені подобається багато функцій та мови в цілому.


1
Не впевнений, я погоджуюся з тим, що неявно заохочувати недосвідчених розробників переходити прямо до системи без будь-якої реальної ідеї gotchas - це гарна ідея ...
deworde

@deworde: Це те саме, що ви пишете в консолі, я не думаю, що ви можете зробити речі менш схильними до помилок і безпечними.
Coder

Так, але коли ви пишете це в консолі, ви знаєте (наприклад), де ви знаходитесь, за ким ви працюєте, на якій машині ви протидієте, і найголовніше, ЧОМУ ви це робите. Програма не обов'язково знає про будь-яку з цих речей, і хтось, хто працює з виконуваним файлом, не знатиме, що він повинен перевірити їх перед запуском.
deworde

@deworde: Не зовсім так, команда EraseFile все одно успадкує дозволи процесу, тому однаково легко зіпсувати з будь-якою командою.
Кодер

1

Моя пропозиція може звучати там, але почуйте мене ... Перемкніть спеціальні напрямки.

З мого досвіду в академічній галузі, спеціаліст з інформатики був дуже низьким поглядом на те, що змушує комп’ютери галочки. Ви почали з базового букваря на C ++, щоб переконатися, що знаєте, що таке програма, та основи пам'яті та обчислення за програмою, а потім ви навчилися складанню, концепціям ОС, електротехніці, цифровому дизайну тощо тощо. Ви отримуєте цей ступінь і шукайте роботу з NVidia або AMD, або Lockheed; десь вони виробляють нове обладнання, для чого потрібен хтось, хто може зрозуміти це обладнання на недостатньо низькому рівні, щоб написати драйвери та керувати програмним забезпеченням.

Здається, що ви хочете - це курс навчання, який в моєму університеті називався Управління інформаційними системами. Такий курс я дотримувався; він навчав програмування на Java, VB.NET, C #, а також на деяких PHP та інших веб-сценаріях. Це також вимагало обчислення (але не в тій же мірі, як CS), бухгалтерського обліку, фінансів, статистики, ділового спілкування, O&D і розробці баз даних, системного аналізу. Я отримав BBA замість BS, і у мене були основні інструменти, щоб почати роботу як розробник програмного забезпечення для Windows або Web.

Те, що готує вас мажор «Інформатика», дуже залежить від того, який університет пропонує. Це здається, що ви перебуваєте на ранньому шляху, щоб отримати дуже анахронічний низький рівень погляду на комп’ютери, які не схожі на те, що ви хочете поза своєю освітою. Я закликаю вас озирнутися в університеті та знайти курс навчання, який більш орієнтований на тип роботи на комп’ютері, до якого ви хочете вступити після школи.

Незважаючи ні на що, ваш курс навчання розпочнеться з дуже елементарного написання програми на рівні консолі. Мова не має значення; те, що вони навчають вас, - це базове процедурне програмування; як думати досить невеликими кроками, що комп’ютер може слідувати за вами від кроку до кроку (адже комп'ютер нічого не сприймає як належне і не може слідувати більшості стрибків у логіці людини). Звідти ви перейдете до об'єктно-орієнтованого програмування (замість того, щоб мати одну довгу функцію, яка виконує все, набагато доцільніше мати кілька менших кодових «об’єктів», які представляють стан та логіку об'єктів реального світу), а потім до програмування на основі подій ("Не дзвоніть нам, ми зателефонуємо вам"; ваша програма, в основному, запускається, повідомляє ОС налаштувати ваш початковий графічний інтерфейс,


Дякую, так, я вважаю це. Якщо я відчуваю, що йде в неправильному напрямку, я можу змінити пізніше, основні курси повинні бути сумісні між всесвітами.
Toerndev

Обережно з цим припущенням; Я змінив спеціальності з CS на MIS, і жоден з математики я вже не переніс, оскільки бізнес-школа мала зовсім окремий математичний трек. Англійська, науки, гуманітарні науки, так, це передано.
KeithS

1

Курси з інформатики не навчать вас програмуванню. Це прогулянка по парку порівняно з деяким програмуванням, яке я робив на своєму курсі CS.

Основна проблема цього, на моєму досвіді, полягає в тому, що майже ніде не навчатимуть програмування на еквівалентному рівні, тому у вас немає вибору.


0

Я думаю, може виникнути певна плутанина щодо того, чому і чому ти вчишся.

Схоже, ви вивчаєте вступну програму з інформатики. Це спрямовано на людей з мінімальним досвідом, які вивчають основи роботи комп’ютерів на низькому рівні.

Також виявляється, що ви напівсерйозний або професійний програміст. Ви програмуєте вже 10 років, і вам зручно на трьох мовах. Здається, ви знаєте, що робите принаймні достатньо, щоб працювати як частина команди. Чи не відчуваєте ви себе на цьому курсі? Чи мають інші студенти такий же досвід чи навички, як і ви?

Що ви маєте намір вийти з цього курсу?

Ви щойно після цього "шматка паперу"? Якщо це так, то не переставайте намагатися влаштуватися на роботу під час навчання. Подайте заявку на роботу, скажіть їм, що ви грамотний програміст, і ви навчаєтесь, тому що вам потрібен аркуш паперу, щоб отримати роботу. Якщо вони наймуть вас, тоді ви подумайте про відмову від роботи - як тільки ви будете мати професійну роботу, тоді вам справді вже не потрібен цей папір. Прийміть нижчу за звичайну заробітну плату, бо краще платити за навчання (на роботі), ніж платити за навчання в школі - і ви теж навчитесь швидше. Через рік-два ви будете в основному швидкості, і тоді ви можете попросити гідну підвищення зарплати, або можете піти знайти собі іншу роботу, тому що у вас буде досвід.

Або ти намагаєшся чогось навчитися? Тоді перестаньте судити свого професора. Наче пам’ятний вчитель середньої школи казав: «СІДНІЙТЕ, А ЗАКРИЙ». Це майже гарантовано, що професор має незмірно більше досвіду та знань, ніж ви, і ви могли багато чого навчитися від нього. Якщо він йде занадто повільно для вас, то спробуйте отримати кредит для цих вступних курсів, виходячи з попереднього навчання та досвіду.

Але ви в правильному курсі? Ви також могли багато чого навчитися у професора літератури чи професора історії ... не особливо актуально. Можливо, ви не хочете "інформатики", але натомість хочете більше практичних навичок "реального світу". Спробуйте "інженерія програмного забезпечення". Подивіться на інші установи більш цілеспрямований курс.

Як і коли ви починаєте нову роботу, клас або курс навчання може бути дуже важким для перегляду ззовні. Ви, здається, перебуваєте на курсі, який не дає вам того, що ви очікуєте. Перегляньте свої варіанти.


Дякую, я подумав над цим і думаю, що ви дуже праві щодо цих двох варіантів. Перший для мене більш вірний, і я буду шукати роботу, чекаючи, чи цікавіші курси стануть цікавішими. Це є на насправді програмне забезпечення , інженерну освіту, що я вибрав більш інформатику , так як я хочу , щоб отримати до швидкості швидше і вчитися через роботу. Можливо, це пояснює, чому я очікував трохи більше «навичок реального світу». :)
Toerndev

Лише кілька зауважень з мого університетського минулого: я вивчав курс, де у нас було "програмування 101" за графіком, ця частина була прикро нудна для мене. Але інші курси були цікаві (фізика, механіка, ...), тому навіть якщо лекція нудна, що може не стосуватися всієї програми, а для інших частин, можливо, варто пережити біль. Але я випав. Тим часом я дізнався, що іноді цей папір був би корисним, навіть якщо папір не означає, що я буду кращим у своїй роботі (у мене гарна робота, хороша зарплата, ... так що це не погано ;-))
johannes

0

Я вважав, що багато відповідей на це питання невтішні. Вони повернулися до втомленого старого аргументу щодо CS проти програмування і т. Д. Це може бути так, але мені це здається, що курс на ОП теж не вчить.

Я був у ситуації, коли вже працював програмістом, і зовсім трохи вчився сам, перш ніж навчатись за сумісництвом у коледжі. Я ретельно розбирався, але загалом вважав, що навчальний план є марною тратою часу. Крім того, вони не дозволили мені пропустити курси, незважаючи на те, що вже маю професійний досвід у цій галузі.

На мій досвід, значна частина професорів досить лінива і використовує застарілу навчальну програму. Чесно кажучи, це звучить так, ніби ви витрачаєте свій час. Я навіть сумніваюся, чи допоможе вам закінчити диплом знайти роботу.

Я сумніваюся, що ви можете багато зробити, щоб змінити речі щодо вашого курсу. Ви можете або доповнити його навчанням самостійно. Або просто забудьте про все, і вивчіть CS самостійно, а також зробіть деякі галузеві сертифікати.

Додам, що я не маю уявлення про вартість диплома на ринку праці вашої країни. Якщо диплом сам по собі є цінним, незважаючи на зміст, то, можливо, вам доведеться просто миритися з навчальною програмою, якої дещо не вистачає.


Раніше цього не бачив Я радий бачити, як хтось сказав саме те, що я відчував щодо деяких відповідей (ваш перший абзац)! Так, викладання досить марно, я більше не відвідую заняття, а просто переходжу до тих програм, які мені потрібно писати. Я роблю це по-своєму (що, як правило, дуже погано, приходить від CL до C ++), стикаюся з багатьма речами, які не є в навчальній програмі, і прошу друзів-програмістів, а не професора за порадою. Таким чином, насправді це весело. Все ще сподіваюся, що зможу знайти роботу до закінчення навчання.
Тоерндев

0

Вони мають задовольнити студентів. Більшість студентів не можуть програмувати. Тому їх не підштовхують до технічної роботи.

Вони також мають свої спеціалізовані області досліджень, але вони цього не вчать. І так чи інакше багато дослідників не є хорошими вчителями, так що ви можете вважати себе щасливим, якщо вони викладають речі, які ви вже знаєте!

Як би там не було, ви, здається, не знаєте, що таке інформатика. Справа не в тому, що практично для промисловості.


-6

Я б просив (а потім наполягав) повернути свої завдання в стандартному режимі c ++. Це цілком розумно, оскільки ви не можете виконати завдання інакше.

Що стосується поганого стилю; з цього неминуче буде щось із цього. Навчитися правильно використовувати стандартну бібліотеку io вимагає декількох вдосконалених функцій c ++, зокрема шаблонів та ітераторів. Я бачу, чому викладач запропонував би вам скористатися дуже простими функціями io. Я б не побоявся про це запитати, це показує захоплення та трохи світла у ваших очах. Ваш викладач повинен мати можливість переплести своє запитання у майбутню лекцію, де ви (сподіваємось) правильно поставили свої ранні вправи.

Я хотів би залишити це на цьому, хоча. Хоча c ++ може бути незалежною від платформи, це часто не є. Вивчення деяких системних функцій Windows не є поганою справою, особливо якщо ви потім навчитеся робити це за стандартними умовами. Ви в якийсь момент натрапите на conio.hперегляд коду інших народів - і корисно знати, що він робить.


10
ні, вам дають інструменти для виконання цієї роботи, і ваше завдання використовувати ці інструменти. Якщо у вас є робота, де у вас є лише 15-річний XT, що працює з CP / M, вимагаючи, щоб вони прийняли ваш 64-бітний код Windows 7, також не працюватимуть, краще звикніть до цього якомога раніше.
jwenting

2
@Ramhound Університет повинен дати можливість закінчити курс без придбання дорогого обладнання (наприклад, операційної системи Windows). Її забобонні.
Том

3
@Tom, Якби я навчав Photoshop, я очікував би, що ти купиш Photoshop (що дуже дорого), і я очікував би, що ти купиш дорогі підручники, я не бачу, де це інше. І я думаю, що в кампусі є багато комп'ютерів, які він міг би використовувати для вирішення завдань, не купуючи Windows (який, чесно кажучи, кожен, хто вивчає CS, мабуть, має і те й інше, ніколи не знаєш, де ти потрапиш, люди програмують в стек Microsoft продуктів не прагнуть використовувати Linux.)
HLGEM

3
@Ramhound Навіть якщо професор чітко не сказав, чому він використовує спрощені IOS підпрограми на основі дос, ми, ймовірно, можемо зробити правильну здогадку. Як згадував Том, іу процедури C ++ є досить складними, тому приховування деталей не є необґрунтованим у курсі самоврядування. Рішення використовувати конкретну бібліотеку для платформи для Windows, а не базується на * nix, майже напевно зводиться до припущень, що більшість студентів використовують Windows не * nix, і що більшість користувачів Windows будуть боротися з початком роботи з * nix, ніж навпаки.
Dan Neely

5
@gaidal - правила існують не просто так. Якщо ви десь почнете працювати і вирішите, що замість власницької бібліотеки ви будете використовувати стандартну, оскільки "стандарти є чомусь" - ви швидко знайдете себе безробітними. Візьміть цей курс як вправу дотримання стандартів кодування. Ти не завжди будеш подобатися таким.
littleadv
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.