Чи слід вивчати мову програмування, перш ніж відвідувати коледж з комп’ютерної інженерії? [зачинено]


14

Я занурив пальці ніг у програмуванні на C ++, але фактично не заглибився в це. Я хочу знати, чи мені насправді потрібно вивчити її чи будь-які інші мови, перш ніж я вступити до коледжу з комп’ютерної інженерії чи все-таки я просто навчусь це в школі?


Я б сказав, що вам точно цього не потрібно, але це зовсім не зашкодить. До того, як я почав свої уроки CS, я ніколи не робив кодування, і навіть не знав, що таке C ++, а клас - на C ++.
pllee

3
... Навіть якщо ви все-таки навчитесь цьому там, це означає просто клас. Тож немає причин не вивчати це зараз ...
Ізката

Це може допомогти вам дізнатися, чи є у вас вміння та / або зацікавлений у програмуванні.
JeffO

Ви задали це запитання на сайті programmers.stackexchange.com. Ви дійсно очікували іншої відповіді, ніж "так, вивчіть C ++ перед тим, як піти до коледжу"?
Мартін Тома

@moose, а потім закрийте як дублікат.

Відповіді:


48

Так, з кількох причин.

  1. Чим раніше ви почнете отримувати досвід роботи з полем, тим швидше зможете зрозуміти, чи це те поле, в якому ви повинні освоїтись. Якщо програмування вам не подобається, то комп'ютерна інженерія, ймовірно, не є корисною для основних Навіть якщо ви в основному зацікавлені в розробці процесорів, ви збираєтеся робити багато програми.
  2. Більшість людей вважають, що рівень та обсяг роботи, яку очікують від них у коледжі, значно перевищують те, до чого вони звикли в середній школі. Якщо ви не є винятково талановитим, ви збираєтеся опинитися заваленими роботою. Зробіть собі прихильність: дізнайтеся, яка мова використовується для викладання курсу першого курсу, і почніть вивчати його зараз. Найгірший випадок, вам буде трохи нудно в класі, але ви зможете швидше виконати роботу та використати час, що зберігається для інших занять.
  3. Багато класів класифікуються за кривою. Мінус цього полягає в тому, що ви будете змагатися зі своїми однокласниками за оцінки. Багато ваших колег із студентів з комп’ютерної інженерії вже зробили багато програмування, тому ви, можливо, вже опинитесь за кривою. Це хороший час, щоб почати наздоганяти.
  4. Єдиний спосіб попрацювати в програмуванні - це зробити багато. Чим більше часу ви витратите на програмування в наступні кілька років, тим краще ви будете в ньому. Чим більше досвіду у вас є, тим більше шансів у вас на посаді на стажування та роботу.

7
+1 Почніть зараз, щоб було простіше в майбутньому
Енді Хант

Можна також пропустити два класи (як правило, введення в програмування та введення в структуру даних) під час навчання в коледжі, якщо вони були прийняті в ГЗ Маючи менше занять для занять, це означає, що можливо менше грошей витратити, або, принаймні, більше часу на буфер. Програми CSE можуть бути дуже жорсткими - наприклад, якщо ви пропустите один клас, це означає, що ви залишаєтесь на рік. Наявність буфера допоможе. Завжди можна пройти позакласні заняття або забрати неповнолітню.
Робота

Якщо ви вкрай вільно володієте мовою програмування, яку викладаєте до того часу, коли ви приймаєте вступний клас програмування, подумайте, чи є у вашої установи політику «Кредитний іспит», яку ви можете використовувати для тестування. Це може заощадити зовсім небагато часу (але лише якщо ви винятково володієте мовою).
Силіко

7

Як сам випускник CS (BS, MS, PhD), рекомендую якомога швидше промокнути ноги. У вас буде достатньо інших речей, що відбуваються на першому курсі коледжу. Зокрема для програмування:

  • Перегляньте веб-сайт вашого цільового університету та ознайомтесь із каталогом класів нижчих відділів чи веб-сторінками навчальних програм для вступних класів програмування. Знайдіть мову програмування, яку викладають, і подивіться, які речі охоплені в першому класі. Спробуйте прочитати цей матеріал перед початком роботи.

  • Знову, переглянувши сторінку навчального плану класу, подивіться на попередні завдання програмування і подивіться, які програмні засоби та середовище програмування використовуються. Це vi і gcc (саме цим користуються справжні чоловіки)? Microsoft Visual Studio? Затемнення? Спробуйте використовувати ці інструменти перед початком роботи.

  • Програмування програмного забезпечення - лише одна з речей, що викладаються в навчальній програмі CS. Інші - алгоритми (наприклад, QuickSort), структури даних (дерева, пов'язані списки, хеш-таблиці) та чиста теорія (NP-повнота та логіка заданих). Я б сказав, що вони принаймні такі ж важливі, як і мову програмування, яку ви вивчаєте.


+1 за не просто читання на мовах програмування
Енді Хант

4

Це залежить від коледжу. Коли я вивчав те, що вони називають "Інформатика" в Каліфорнійському державному університеті, вони (справедливо, на мою думку) зосередилися на науковому аспекті цього, і вони очікували, що всі (навіть першокурсники) вже знають, як використовувати операційні системи та як написати код якоюсь популярною мовою. Вони не прийняли передавати деякі кредити, які я отримав під час відвідування мовних курсів в Державному університеті Огайо. (Це було для мене непомітним, але знову ж таки, я це розумію.) Це теж мало перелом: я виконав завдання один раз, написавши свій код на C; професор не зміг прочитати С, тому він попросив мене переписати його на Паскаль. Я запитав у начальника управління про правомірність цього запиту, і він сказав, що оскільки вони не вчать мови, вони також не можуть сподіватися, що хтось виконає завдання з будь-якої конкретної мови. Тому моєму професору довелося жити з моїм завданням, написаним на C. Отже, суть полягає в тому, що уточнюйте в університеті, в який ви збираєтесь вступити. Але якщо ви хочете моєї поради, ніколи не зашкодить дізнатися якомога більше заздалегідь.


2
І C ++ - це хороший вибір мови для початку, якщо ви збираєтесь будь-яку з інженерних дисциплін, оскільки за допомогою C ++ ви можете навчитися програмувати близько до машини, і в той же час ви можете почати вивчати OOP.
Майк Накіс

Дякую, я зателефонував до школи (Університет штату Іллінойс), і вони сказали мені, що зазвичай студенти мають незначне розуміння мови і що я повинен навчитися стільки, скільки зможу, перш ніж потрапити до школи. Дякую за вашу пораду.
Метт

Чудово. Спробуйте також ознайомитися з командним рядком Linux, якщо можете; такі знання, як правило, корисні в університетських умовах. Краще бути тим, хто показує іншим людям у комп'ютерній лабораторії, як це робиться, ніж бути хлопцем, який завжди просить інших.
Майк Накіс

4

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


1
Я б змінив це, щоб сказати, що "найуспішніші студенти з інформатики на першому курсі". Коли я навчався в коледжі (а пізніше і в середній школі), було тривожне число студентів CS, які не знали в першу чергу про використання комп'ютерів, але вони просто почули, що CS - це всі гроші. Більшість із них змінили спеціальність, після того, як сильно роздратували інструкторів, не сказавши їм, що вводити.
пухнастий

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

3

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

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

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

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

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


2

Так, але не починайте з найскладнішої мови, пізніше на це буде достатньо часу.

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

Дізнайтеся Python щодо динамічного програмування, простих об'єктно-орієнтованих методик програмування та правильного відступу. Дізнайтеся javascript + JQuery або Lua, щоб дізнатися про закриття. Дізнайтеся Java або C #, щоб дізнатися про статичне введення тексту. Вивчіть регулярні вирази для розбору рядків І вивчіть трохи SQL, оскільки кожен програміст повинен доторкнутися до бази даних в певний момент. Потім вивчіть PHP, щоб ви могли ідентифікувати код спагетті.

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


1

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


1

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


1

Деякі речі, які можуть бути зацікавлені у навчанні перед вступом до університету (виберіть серед них):

  1. Ще трохи математики (я не можу бути більш конкретним, оскільки я французька, і не маю уявлення про математичні навички, які, як очікується, маєш).
  2. Деякі інші мови програмування, такі як Ocaml, Scheme, Haskell, Lua ... Вони відкриють ваш розум для нових способів мислення.
  3. Деяка книга алгоритму
  4. Кращі знання англійської мови та писемності (а іноземна мова ніколи не погана)
  5. Використання та кодування під GNU / Linux та вільне програмне забезпечення взагалі. Здатність вивчати вільне програмне забезпечення (і сприяти цьому) навчиться вам багато чого.
  6. Працюйте самостійність, вміючи визначити собі план роботи, і дотримуйтесь його
  7. SICP

Я не рекомендую зосередитися на C ++; інші мови, книги, навички принесуть вам набагато більше. Не витрачайте всіх зусиль на C ++.

Насолоджуйтесь своїм навчанням.


1

Чесно кажучи, якщо у вас є час піти на це. ІТ матиме більше сенсу, поки викладач навчає. Ви отримаєте максимум від цього, ніж студенти, які ніколи не програмували.


1

Безумовно! Якщо ви раніше не програмували, вивчення C ++ або C або Java або C # дозволить вам почати правильно. Усі ці мови на основі алголю (приблизно) - як тільки ви засвоїте одну з них, вивчіть Лісп або Хаскелл. Чудова зміна парадигми між двома сім'ями допоможе вам незалежно від того, що передбачають ваші курси.


0

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


0

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

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

IMO C ++ - одна з найгірших мов для початківців. Вперед і вивчайте C ++, якщо вам це не надто складно, але інші мови, такі як C #, VB, Ruby або Python, є дещо простішими.


0

Було б дуже розумним рухом знати якусь мову перед вступом до коледжу. Викладання в коледжі з інформатики часто є потворною якістю, яку дають технічні працівники, які не є навченими або не володіють англійською мовою. Вступні курси не є пріоритетними, і погана інструкція - це правило. Університети заробляють гроші на дотаційних витратах; отримання грантів є пріоритетом більшості викладачів коледжу, а не викладання магістрантів. Це сумне правило за кількома винятками.

Однак якість програм у вузах теж може бути поганою. Багато шкільних адміністрацій вважають, що навчання використанню Micosoft Word є інформатикою. Ах, нісенітниця, яка випромінюється з шкіл видання!

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


0

Так.

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

Якщо ви очікуєте, що в першу чергу будете працювати з комп'ютерним обладнанням, я б запропонував вивчити C і Forth. Якщо ви в першу чергу будете робити те, що я вважав би "інформатикою", я б запропонував вивчити щось на зразок Python або Smalltalk, щоб спробувати "справжню роботу" та функціональну мову програмування на ваш вибір (я б запропонував якийсь варіант ліпса або схеми, але вибирайте те, що найлегше і крутіше).


0

Я поділюсь власним досвідом.

Я почав програмувати приблизно 10-11 місяців тому. Моє перше реальне опромінення це було з PHP, але згодом я виявив, що навчаюсь C # на вступному курсі (CS 140) у моєму коледжі місцевої громади. Після того, як я засвоїв ази, я досить багато полетів з нею і з того часу не зупинився. Після C # я вирішив почати вивчати механіку нижчого рівня того, як працюють комп'ютери. Я працюю над додатком, який повинен бути багатоплатформенним і повинен допомагати двигунам відеоігор взаємодіяти один з одним (подібний до SDL, але, можливо, більш низький рівень, ніж цей, з чітким фокусом на графічний інтерфейс, математику та інші допоміжні функції).

В основному, якби не цей клас, я б не знайшов того, що любив, набагато пізніше. Ви насправді не знаєте, що вам подобається програмування, поки ви дійсно не розумієте понять, що стоять за ним. Якщо ви хочете це дізнатися, я б рекомендував підібрати вступ до книги програмування і почати з C / C ++, оскільки вам потрібно зрозуміти, що ви робите, а не використовувати мову, яка буде тримати вашу руку, як Java або C # або лише деякі мови сценаріїв - пам'ятайте, вони мають своє місце і є хорошими інструментами для використання, але також дуже важливо, щоб ви зрозуміли поняття нижчого рівня на початку. Це була помилка, яку я зробив на початку.

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

Я можу вам сказати, що дисципліни інформатики / електротехніки на сьогоднішній день є найшвидшими за показниками еволюції (яка постійно зростає з кожним роком), і вам доведеться продовжувати вивчати нові технології, щоб не відставати від того, що найновіший і найкращий (який вам повинен бути хоча б дещо цікавим, хоча це дійсно залежить від того, в якій галузі ви спеціалізуєтеся. Наприклад, я ненавиджу веб-програмування, і мене зовсім не цікавлять технології, які існують за це, але деяким людям це дуже подобається і НЕ цікаво). Незважаючи на це, C / C ++ - це чудові мови для вивчення, хоча багато інших мов (наприклад, C #, Java) мають власні попередньо вбудовані API, щоб "полегшити життя", ви не збираєтеся дізнаватися чорт про те, що насправді відбувається під капотом, поки ти "

В основному я займаюся програмуванням 10-11 місяців і жодного разу не відвідував жодного університету. Я взяв клас C # в коледжі громади (мій перший клас програмування, який навчав мене основ), і принаймні 95% решти я навчився самостійно. Це тому, що, пройшовши цей клас, я знав, що хочу бути програмістом. Ви дізнаєтесь це, як тільки зрозумієте це. Будь-який шлях ви виберете, вам слід вивчити його самостійно, якщо ви дійсно хочете досягти успіху в ньому, оскільки це підвищує вашу здатність до мотивації та відданості. Програміст маєбути мотивованим на успіх. Вони займаються багато, більше ніж просто "написання коду". Додаток потрібно постійно перевіряти, налагоджувати та розуміти з самого початку. Як правило, невеликі чи великі, ви майже збираєтеся дізнаватися щось нове для кожного свого проекту. Це гарна річ, адже потрібно підтримувати цей мозок активно.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.