вівторок, 23 грудня 2014 р.

Eclipse, Android, VMware та VirtualBox

Якщо віртуальні пристрої, які створюються за допомогою Android Virtual Device чимось не підходять для роботи, то один із способів зробити емулятор для написання програм під Android є створення віртуальної машини у VMware або ж VirtualBox..

Усе робиться доволі просто.
1. Звантажуємо образ диску з Android (наприклад, звідси (http://www.android-x86.org/download))
2. Далі встановлюємо або VMware або VirtualBox. Virtual Box безкоштовний і його можна звантажити з офіційних сайтів (наприклад, звідси (https://www.virtualbox.org/wiki/Downloads))
3. Створюємо віртуальну машину і встановлюємо на ній Android. На youtube є маса відео по встановленню, тож я не буду у прінтскрінах все це показувати. Можна скористатися хоча б цим відео:

середа, 10 грудня 2014 р.

Як зробити завантажувальну флешку Windows 7?

Як зробити завантажувальну флешку Windows 7?

Для того, щоб наше встановлення Windows відбувалося з флешки недостатньо просто скопіювати файли з диску встановлення Віндовз 7 на флеш накопичувач. Спочатку потрібно відформатувати флешку і зробити її активною (тобто вказати, що вона є завантажувальною). Є декілька способів зробити вищенаведене.

- Використати утиліту windows DISKPART
- Використати програму UltraISO
- Використати інші, схожі на UltraISO програми

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

1. Запускаємо DISKPART

четвер, 13 листопада 2014 р.

Перенаправлення blogger-блогу на інший сайт або інший блог

Суть, потрібно блог на блогері (зокрема, там знаходиться і даний блог) перенеправити на інший сайт або ж на інший блог на цій же платформі . Щоб це зробити необхідно додати відповідні рядки у HTML код блогу.

Для цього на сторінці управління блогом спочатку заходимо у Шаблон, а далі натискаємо кнопку Редагувати HTML.


четвер, 6 листопада 2014 р.

Множини та дії над ними

Для тих хто не вчив, але хоче вивчити, або ж вчив, але уже все забув - хороший відеоурок про множини, об'єднання множин, перетин і т.д.

Так би мовити - множини для чайників :)

Розробникам ongradient.com респект, за такі уроки і за те, що роблять крім російської ще й українською.

середа, 5 листопада 2014 р.

Цикл while та цикл do...while



У відео ідеться про цикли з передумовою (while) та з післяумовою (do..while) у Java, особливості їхнього застосування, ключові слова break та continue. Приведено приклад консольної гри на вгадування числа з використанням циклу do...while.

пʼятниця, 31 жовтня 2014 р.

Важливість базових знань



Чим більше вивчаєш, тим більше розумієш, що якщо спочатку щось не зрозумів, вірніше, якщо не засвоїв базові (основні, елементарні) знання з певної галузі, то згодом це може становити значну проблему у розумінні складнішого матеріалу. Так, для прикладу візьмемо, програмування і Java. Якщо ти не освоїв базові концепції об'єктно-орієнтованого програмування і те як це все реалізовано в Java (так зване Java Core) до найменших деталей, то рух дальше буде важкий.  Переважно з таких програмістів стають так звані "бидлокодери", які просто ліплять куски коду докупи до кінця не розуміючи, що кожен рядок коду означає. До певних пір це працює, але лише до певних. Крім того після таких людей розібрати код просто нереально. Що правда через цей етап мабуть проходять усі спочатку:), оскільки, часто, щоб зрозуміти щось, потрібно спробувати хоч щось запрограмувати і пройтися дальше в матеріалі, а згодом повернутися.

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

середа, 29 жовтня 2014 р.

Освоюємо Java: Цикл For (відеоурок)

 
У відеоуроці: 
види циклів у Java, класичний цикл For та покращений цикл for (for each), 
вивід елементів масиву, безкінечний цикл, інструкція break у циклі for

Інші відеоуроки: тут
Все стосовно Java: тут

четвер, 16 жовтня 2014 р.

Для чого освіта?

Цікаві дані, які я зустрів в книзі "Статистика для Чайников". Книга хороша для початківців, але в російському перекладі є проблема із шрифтами: грецькі букви не були добре надруковані, що дещо унеможливлює нормальне читання тих частин тексту, де ідеться про формули з грецькими літерами. Щоправда формули там не такі вже й важливі, переважно елементарні і їх доволі мало. Мене вона зацікавила передусім цікавим викладом матеріалів та великою кількістю ілюстрацій. Ось один з цікавих графіків про залежність зарплати в США від рівня освіти.
Як видно з графіка, що чим кращий рівень освіти тим вища зарплата. Щоправда, не забуваємо, що це все в середньому. Цілком може людина без вищої освіти, при певних здібностях і відповідному характеру заробляти набагато більше ніж більшість людей з вищою освітою. Проте в середньому чим краща освіта тим більше ви можете заробляти. На тим кращі посади та зарплати ви можете претендувати із меншою кількістю зусиль ніж люди з нижчим рівнем освіти. Навіть якщо людина лише протирала штани в інституті, усе рівно щось та відкладалось в голові, як мінімум в неї більший кругозір. Звичайно диплом не гарантує успіху, але це хороший старт. Усе решта залежить від реальних знань, персональних якостей та цілей в житті.

вівторок, 9 вересня 2014 р.

Патерн «Фабрика»

Вирізка із книги "GoF Design Patterns - with examples using Java and UML2" by: Benneth Christiansson (Ed.) Mattias Forss, Ivar Hagen, Kent Hansson, Johan Jonasson, Mattias Jonasson, Fredrik Lott, Sara Olsson, and Thomas Rosevall. License: Creative Commons Attribution-ShareAlike 3.0 License.

Визначення
Патерн Фабрика (Factory Pattern) надає шлях використання екземпляру як об’єктну фабрику. Фабрика може повертати екземпляр одного з декількох можливих класів (у ієрархії класів), в залежності від заданих даних.

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

середа, 27 серпня 2014 р.

Отримуємо шлях до файлу в кирилиці

Є виконуваний jar файл, поряд з ним у каталозі є підкаталог у якому є файл help.txt. Необхідно запустити jar файл і при виборі із меню пункту "Help" запустити файл help.txt.

Тож все це робиться так:
File currentJavaJarFile = new File
     (Test.class.getProtectionDomain()
     .getCodeSource().getLocation().getPath());
String path=currentJavaJarFile.getParent();
String comand="notepad.exe " + path+"\\Resources\\help.txt";
Runtime.getRuntime().exec(comand);

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

Отримати правильно шлях допоможе UrlDecoder:
currentJavaJarFile=new File(java.net.URLDecoder.decode(
            (Test.class.getProtectionDomain().getCodeSource()
            .getLocation().getPath()).toString() ,
            "UTF-8"));




get path with cyrillic

вівторок, 26 серпня 2014 р.

Вибір подальшого шляху (MindMap)

Написанню даної замітки посприяла стаття "Роздоріжжя навколо нас".

Постійно приходиться нагадувати собі що головне, а що другорядне. Хочеться багато чого освоїти, проте реально приходиться зосереджуватися на найбільш актуальному і потрібному для себе в даний час. Вирішив якось промалювати свою інтелект карту в яких напрямках рухатись дальше. В результаті вирішив що краще розділити на декілька невеличких, але основних. У мене вийшло аж 4 основні інтелект карти: Англійська, Математика, Програмування, Java (як підкарта програмування). У перших трьох розгалужень не так і багато, а ось Java вийшла доволі розкішна:) Постарався представити те що я освоїв, але ще варто закріпити знання, або уже почав освоювати, або збираюсь освоїти найближчим, або ж просто є велике бажання в майбутньому освоїти (як то Android SDK). Результат того, що накидав десь за хвилин 20-ть:

Java - My Mind Map

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

середа, 13 серпня 2014 р.

Як показати діалог "зберегти" з допомогою JFileChooser

Як показати діалог "зберегти" з допомогою JFileChooser

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

  public int showSaveDialog(Component parent)

Де parent - це батьківський компонент діалогу, переважно JFrame. Коли користувач введе ім'я файлу і натисне ОК або Cancel, метод повертає одне з наступних значень:

   
   JFileChooser.CANCEL_OPTION // користувач відмінив вибір файлу
   JFileChooser.APPROVE_OPTION // користува здійснив вибір файлу
   FileChooser.ERROR_OPTION // якщо користувач закрив вікно
                            // кнопкою закриття Х.

Після того як користувач здійснив свій вибір, ми можемо використати метод getSelectedFile() щоб взяти нам об'єкт файлу:

    File getSelectedFile()

Перед викликом методу showSaveDialog(),  ви можливо захочете встановити деякі опції для діалогу:
  
    setDialogTitle(String) // встановлює заголовок вікна.
    setCurrentDirectory(File) // встановити директорію для збереження

Приклад коду:

// батьківський компонет діалогового вікна
JFrame parentFrame = new JFrame();
 
JFileChooser fileChooser = new JFileChooser();
fileChooser.setDialogTitle("Вкажіть як зберегти файл");   
 
int userSelection = fileChooser.showSaveDialog(parentFrame);
 
if (userSelection == JFileChooser.APPROVE_OPTION) {
    File fileToSave = fileChooser.getSelectedFile();
    System.out.println("Зберегти як: " + fileToSave.getAbsolutePath());
}

Можна встановити фільтр для задання розширень файлу:

 
FileNameExtensionFilter filter = 
                      new FileNameExtensionFilter("csv файл","csv");
fileChooser.setFileFilter(filter);

Вікно може виглядати так:


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

 При написанні було використано матеріали із codejava.net

пʼятниця, 25 липня 2014 р.

Заміщення (overriding) методів у Java


У відеоуроці розглядається наступне:
Що таке заміщення  методів? 
Чому заміщення і перевизначення це не одне й те саме? 
Дещо про успадкування та поліморфізм у Java.
Особливості статичних методів.
Модифікатор final при визначенні методів Java.


пʼятниця, 11 липня 2014 р.

WindowBuilder Error: Unhandled event loop exception

Вирішив поставити плагін WindowBuilder у Eclipse. При спробі використовувати графічний редактор зразу ж Eclipse почав видавати помилку: Unhandled event loop exception


Думав, знов щось нахомутав при встановленні. Проте завдяки посту:  "Eclipse Bug: Unhandled event loop exception No more handles", довідався що у цьому можуть бути винні деякі процеси запущені у windows. Методом проб і помилок як і у випадку описаному у моєму пості "JVM creation failed" виявилося, що знов винен електронний словник Abby Lingvo. Ну не люблять чомусь Java IDE цю програмку :)  і взагалі продукти фірми ABBY :).

Проблема вирішується або вбивством процесу  LvAgent.exe або ж у налаштуваннях лінгво забрати галочки пов'язані з роботою з клавіатурою, щоб взагалі не було реагувань на клавіші.

вівторок, 10 червня 2014 р.

Логування в Java (log4j 2)

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

Що потрібно звантажити

* Apache Log4j 2 з оф. сайту (http://logging.apache.org/log4j/2.x/download.html)
* Log4j 2 User’s Guide – посібник користувача (http://logging.apache.org/log4j/2.x/log4j-users-guide.pdf)
* SLF4J – це бібліотека для логування на якій базується log4j 2 (http://www.slf4j.org/download.html)


Підключення бібліотек


Для того щоб наші приклади працювали. Необхідно підключити відповідні *.jar файли до проекту. Не буду пояснювати як це робити.

Розархівовуємо вміст архівів звантажених з інтернету і з них я підключав наступні:

log4j2.0\log4j-api-2.0-rc1.jar
log4j2.0\log4j-core-2.0-rc1.jar
log4j2.0\log4j-slf4j-impl-2.0-rc1.jar
slf4j-1.7.7\integration\lib\slf4j-api-2.0.99.jar
slf4j-1.7.7\integration\lib\slf4j-simple-1.6.99.jar

Якщо не підключити slf4j, то буде видавати помилку виду:

 Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/ILoggerFactory
      at java.lang.ClassLoader.defineClass1(Native Method)...........



Конфігурація Log4j 2

Для того щоб логування працювало як нам потрібно необхідний відповідний файл конфігурації. Можна створити .xml файл, а можна файл properties. Приклади файлів конфігурації можна знайти в посібнику (User’s Guid). Файл повинен бути прописаний в classpath проекту. Можна просто закинути файл у корінь проекту, або у каталог src. Файл конфігурації краще назвати log4j2.xml.

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

 

    
        
            
        
        
            
        
    
    
        
            
        
        
            
        
    



Наступний приклад демонструє роботу з логуванням.
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

public class HelloWorld {
 private static Logger logger = LogManager.getLogger("HelloWorld");

 public static void main(String[] args) {
  logger.info("Hello, world");
  
  Logger fileLog=LogManager.getLogger("org.apache.log4j.xml");
  fileLog.debug("Write in file!");
 }
}

В результаті, якщо був використатий файл конфігурації наведений вище, то на консолі отримаємо:
2014-06-10 15:04:31,610 INFO  [main] HelloWorld (HelloWorld.java:8) - Hello, world
2014-06-10 15:04:31,612 DEBUG [main] HelloWorld (HelloWorld.java:11) - Write in file!
А у файлі:
main DEBUG log4j.xml - Write in file!
Спочатку отримуємо наш основний «Логер», який направлений буде на консоль.

private static Logger logger = LogManager.getLogger("HelloWorld");

Якщо ми хочемо писати у файл щось, то отримуємо логер для файлу:

Logger fileLog=LogManager.getLogger("org.apache.log4j.xml");

І пишемо у файл:

fileLog.debug("Write in file!");

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


Можливі передачі у лог і винятків (Exception):

logger.info("Error: ", new Exception("An exception"));


Рівні логування

Не хочеться вдаватися глибоко у цю тему, але необхідно згадати основне. При логуванні розрізняють рівні логування:

1.    TRACE – повідомлення найвищого рівні

2.    DEBUG – зневаджувальні повідомлення, менш детальні ніж TRACE

3.    INFO – стандартні інформаційні повідомлення

4.    WARN – некритичні помилки

5.    ERROR – помилки, що можуть вплинути на правильність результату

6.    FATAL – фатальні помилки, які заважають роботі

За допомогою файлу конфігурації ми можемо вказати, які повідомлення включати у наш лог.  У нас у файлі конфігурації маємо level="debug" . Це означає що на консоль і у файл буде виводитися всі повідомлення рівня Debug і нижче. Повідомлення рівні trace не будуть включатися. Тобто рядок в коді logger.trace("Hello, world"); - нам нічого не виведе ні в лог, ні у файл, ні на консоль, якщо ми не підвищемо рівень логування до TRACE у файлі конфігурації.

Патерни логування

Для формування вигляду логу, використовується відповідний патерн або ж шаблон. У нас використано два патерни, один для файлу інший для консолі.

<PatternLayout pattern="%t %-5p %c{2} - %m%n" />

<PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n" />

%d – вивести дату

%t – ім’я нитки (thread)

%-5p — виводить рівень логу (ERROR, DEBUG, INFO …), цифра 5 означає, що для виводу використовується 5 символів ,  (-), те що вирівнювання буде відбуватися по лівій стороні

%c{1} — виводить назву логера, у фігурних дужках регулюється наскільки повною видаватиметься назва

%L —номер рядка, в якій відбувася виклик запису у лог

%m — повідомлення, що було передано в лог

%n — перехід на новий рядок

Усе це детальніше подато у посібнику користувача.

середа, 19 березня 2014 р.

Що чекає Крим в Росії?

Раз всі кинулися обговорювати дану тему, вставлю і я свої копійки із своєю точкою зору.  Хоча цей блог і не призначений для цього. Але все ж хочеться розглянути все це без емоцій і адекватно, наскільки це можливо :).

Ситуація така на 19 березня 2014 року: Крим де-факто в складі Росії, проте де-юре він навіть по Російському законодавству ще не переоформлений, не говорячи? що його решта світу не визнає. Тож по переду в Криму повинні бути масштабні реформи із перетворення його в суб'єкт федерації. А для цього потрібно поміняти паспорти, взяти під контроль держустанови, налагодоти документоводство, переоформити права власності, налагодити фінансування, усунути українських військових з Криму, усунути опозицію, уникнути значного незадоволення населення, усунути найбільш активних незадоволених і т.п.

Тож перед російським і кримським керівництвом стоять серйозні задачі, які за рік неможливо вирішити.

Що ж хочуть звичайні люди, які зараз під ефоріюєю і які сприймають ситуацію за наступними фразами: "Росія нам допоможе", "Жити будем набагато краще" і т.п.. Будемо говорити правду, що більшість кримчан реально в це вірить. Навіть більш того з усуненням українським каналів,  багато з тих, що раніше хотіли б жити в Україні піддались пропаганді і вірять у майбутній Рай.

Реально прості люди Криму очікують:


1) вищих пенсій
2) вищих зарплат
3) вищих доходів для підприємців
4) спокійного життя

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

Пенсії

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


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

Зарплати 

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

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


Доходи підприємців

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


Спокійне життя

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


Висновок

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

Що буде? Поживем - побачим.

понеділок, 3 лютого 2014 р.

Бути чи не бути програмістом?

Взято із: robota.ua

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

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

Ще одне уявлення про програмістів, яке нині часто зустрінеш, - не потрібно закінчувати жодних вишів, достатньо кілька місяців походити на курси - і от, ти вже працівник компанії зі стартовою зарплатою, що вдвічі перевищує зарплату початківця в інших сферах.
Про те, що з сучасних уявлень про айтішників правда, а що - вигадка, з чого треба починати кар'єру програміста, які базові знання для цього потрібні, ми поговорили з Дмитром Бабчуком. ІТ-працівник з 10-річним стажем, який має досвід роботи з різними технологіями, сьогодні керує однією з ІТ-команд у львівському представництві нідерландської компанії Symphony Solutions.

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

Також - самоосвіта, оскільки інтернет - це безмежне джерело інформації. Правда, тут треба вміти правильно ставити запитання :-).

Одне слово, коли ти прагнеш навчитися, то варіантів - просто неймовірна кількість.

- Незважаючи на те, що я в професії новачок, мені гарантована висока зарплата, правда? Принаймні, всі не-айтішники про айтішників думають саме так: люди з дуже високим заробітком.
 
- Ой, це болісна тема. Ринок ІТ «перегрітий». З однієї сторони, існує велика потреба в кваліфікованих кадрах. Університети, на жаль, не забезпечують знаннями: між тим, що вчать, і що диктує ринок, - велика прірва.

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

Це проблема, яка може «вдарити» по ринку взагалі.

По-перше, ми станемо занадто дорогими для роботодавців, і вони просто залишать Україну. По-друге, порівняно з іншими країнами, ми завжди були сильні якістю роботи. Але її може бути просто знівельовано за наступні роки.

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

- Поясни, будь ласка, що означає «починати з основ»?
 
- Я переконаний, що професійний програміст повинен добре знати, як то кажуть, «матчасть» :-). Тобто розуміти, як працює комп'ютер, що таке процесор, з чого він складається, що таке структури даних, алгоритми, протоколи, бази даних і т.д.

- PHP, Java , C+, C# і не тільки... Яку технологію і мову програмування радиш вивчати молодим?
 
- Одного рецепту не має. Мова і технології - це інструмент, який дозволяє тобі вирішити поставлене завдання. Тому ваше головне завдання вибрати правильний інструмент. Я маю досвід комерційних проектів з використанням Java-технологій та SalesForce.

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

Багато речей, які ти повинен написати сам, наприклад в Java, в SalesForce вже готові для конфігурації і використання.

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

Ну і не треба забувати, що SalesForce має величезну популярність серед замовників з Європи та США. Роботодавці шукають тих, хто її знає.

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

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

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

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

А взагалі я дуже не люблю, коли є ІТ-команда з поділом на джуніорів, мідлів, синіорів (тобто зовсім зелених, з досвідом і з великим досвідом). Мені не подобаються ці ранги в команді, без них краще :-)!

Адже між ними єдина різниця - в завданнях, які вони вирішують.

- То це і є формула успіху в ІТ, чи ще є секрети? :-)
 
- Головний секрет, як зажди, простий: тяжка праця. Один мій чудовий шкільний вчитель підвів мене до висновку, що талант - це майже ніщо, це міф - якщо він без Щоденної Тяжкої Праці.

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

Інтерв'ю брала Ольга Липинська

Джерело:   robota.ua