Про користь вивчення мов сімейства З



Якщо ви задумалися про те, щоб освоїти перший у своєму житті мову програмування, то вам доведеться поламати голову над тим, а що ж вибрати з різноманіття існуючих мов. У світі веб-розробки панує JavaScript, у багатьох ВУЗах і школах пропонують вивчати Python. Якщо попитати на форумах, то вам звалять купу варіантів, включаючи Haskell, Scala і Erlang. Багатство вибору добре майже в будь-якій справі, і велика кількість мов програмування свідчить про те, що цей напрямок науково-прикладної діяльності продовжує розвиватися. Одній людині вже не під силу вивчити всі існуючі мови, тому доводиться вирішувати яку мову краще всього почати освоювати. Найчастіше вивчають те, що прийнято у конкретній компанії або сегменті ринку. Але якщо ви тільки збираєтеся зробити перші кроки на ниві програмування, то можна порекомендувати почати з однієї з мов сімейства С. Це буде найбільш далекоглядним вибором, який допоможе вам у кар'єрі. Можливо, ви не станете щодня писати на цій мові, або не будете вивчати його дуже глибоко. Але якщо ви хочете, щоб до вас ставилися як до серйозного розробника, то вам обов'язково потрібно володіти однією з мов сімейства С.

Що за «сімейство З»?
Відповідь на це питання залежить від того, кого ви питаєте. Розробники люблять тільки одну річ більше, ніж спори про походження і взаємному впливі мов програмування, — суперечка про те, яка мова краща. Але незалежно від цього існує загальноприйнята думка, що до сімейства З відносяться сам З, З++, C#, Objective-C і Java.

В якості дуже грубого визначення можна сказати, що мова належить до сімейства С, якщо в ньому для виділення функціональних блоків використовуються фігурні дужки {}. Багато мови цього сімейства (але не всі) є строго типізованими. Більшість з найпопулярніших мов є об'єктно-орієнтованими (С++, С#, Java)однак це не стосується самого C. Чимало поширених мов, що не відносяться до сімейства З, випробувало на собі його вплив: Python, Perl, PHP, Ruby і т. д. Однак оцінки ступеня і важливість цього впливу сильно розрізняються. Наприклад, JavaScript, що використовується синтаксис по типу С, але якщо копнути глибше, то ці мови, що сильно відрізняються один від одного.

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

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

Мови З сімейства мають дуже зручним властивістю: якщо ви вивчили один з них, то інші «йдуть» набагато легше. Сьогодні ніхто не говорить на латині, але її все ще корисно вивчати, оскільки вона полегшує освоєння італійської, іспанської та французької мов. Освоївши один з С-мов ви не станете експертом в інших мовах сімейства, але крива навчання стане менше пологою. Можна з упевненістю стверджувати, що якщо ви знаєте C#, то навряд чи відчуєте труднощі з читанням лістингу на Java. Звичайно, щоб почати на ньому писати, вам доведеться вивчити синтаксис Java, але це займе дні, — в крайньому випадку, тижні, а не місяці. Зрозуміло, щоб віртуозно програмувати на якому-небудь мовою, доведеться витратити на вивчення і практику куди більше часу.

Багато розробники в глибині душі мріють стати програмістами-поліглотами» (або вже вважають себе такими). Хоча цей термін часто означає «я знаю ще щось крім однієї з мов З сімейства». Тим не менш, З-мова є своєрідним фундаментом, на який можна спиратися при вивченні інших мов. З мови формують характерне «правильне» программистское мислення. І якщо ви опануєте одну з цих мов, то зможете легко перейти до вивчення, наприклад, функціонального мови. Перемикання на мову з іншою парадигмою передбачає зміну способу мислення програміста. У багатьох це викликає утруднення, але зате дає корисний досвід. Це зовсім не означає, що вивчення мови сімейства З викличе в майбутньому проблеми з освоєнням інших мов. Хороший розробник повинен вміти мислити в рамках різних парадигм, як функціонального програмування, так і імперативного. Вам доведеться витратити час на засвоєння основ, тому краще почати з одного з найбільш поширених мов.

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

Якщо ж ви дійсно хочете зробити програмування своєю професією, то краще заздалегідь ознайомтеся зі списком мов, найбільш затребуваних працедавцями. рейтингу TIOBE перші чотири мови відносяться до сімейства С, а майже всі інші з Топ 10 випробували на собі вплив С. Вам більше по душі рейтинг PYPL? В його Топ 10 половина мов також відноситься до сімейства С. Можна ставити під сумнів значущість будь-якого рейтингу, але якщо зібрати їх усі разом, то можна досить точно оцінити затребуваність на ринку фахівців у тих чи інших мовах. Звичайно, зустрічаються роботодавці, які наполягають на тому, щоб ви знали саме ту мову, який їм потрібен, але будь-який бізнесмен зацікавлений у тому, щоб нові співробітники якомога швидше могли приступити до виконання своїх обов'язків. В даному випадку — щоб крива навченості була як можна крутіше. А знання мови сімейства З, як було сказано вище, в цьому дуже допомагає.

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

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

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

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.