• Что нужно знать для backend разработки?

    @FullStackAlex
    Веб-разработчик, электрик, кочевник
    Бэкенд разделяется как минимум на четыре части:
    - язык для программирования приложения
    - администрация базы данных
    - администрация сервера и операционной системы
    - DevOps

    Языки для программирования приложения:
    - JavaScript + Node.js/Express.js любимчик хипстеров и стартапов: так как у вас или как минимум у меня нет конкретных представлений о том что вы хотите не нужно далеко идти. Знания Node.js поможет вам и с фронтондом, так как Webpack работает с Express.js а индивидуальная настройка Webpack огромный pain in the ass и с поиском работы среди хипстерских компаний.
    - PHP/Symfony. PHP - любимчик пролетариата - всегда хороший выбор. Язык написан как и JavaScript специально для вэб-приложений. Маленькие проекты реализуются очень быстро благодаря отсутствию каких либо рамок со стороны языка. От сюда же и плохая репутация этого языка так как очень много (с точки зрения ООП архитектуры) не грамотно созданных проектов на PHP, среди которых самый известный это WordPress. Но PHP полноценный язык программирования и нет больших объективных поводов поливать его грязью как это любят делать сектанты JavaScript, Java, Ruby, Python итп (хотя и каждый из этих языков поливается грязью сектантами других языков). Фреймворк для enterprise level: Symfony + Doctrine ( ужасное дерьмо, нужно только реально для enterprise level - для личных проектов Doctrine лучше избегать и использовать PDO). Практически все популярные eCommerce системы написаны на PHP (WooCommerce, Magento, Shopify, Shopware). Ну а про WordPress вообще говорить нечего. 35% сайтов работают с WordPress. WordPress с технологической точки зрения не самый лучший Framework, но так как самый популярный среди пользователей, то экспертиза в этой сфере всегда поможет вам с работой на фрилансе. Хотя пользователи WordPress в среднем не самые платежеспособные клиенты. Но есть (где то) и клиенты которые готовы платить десятки тысяч долларов за проект на основе WordPress.
    - Java/Spring - любимчик корпораций: практически все индивидуальные разработки больших корпораций делаются на Java (если не учитывать языки Microsoft). Популярный fullstack генератор для проектов на Java: JHipster. Сектанты Java ненавидят всех и являются главным источником шитстормов против всех остальных языков. По крайней мере мне так кажется. Одно из больших преимуществ Java: можно писать приложения как для вэба, так и для мобайл и десктопа.
    - Kotlin - язык программирования от русской компании JetBrains который должен в длительной перспективе заменить Java для Android, из-за каких то разногласий между Google и Oracle. Kotlin был развит на основе Java и на сколько я знаю можно всё что написано на Java (как то) использовать с Котлин. Котлин любят все как мне кажется. Ребята от JetBrains знают на генетическом уровне что нужно разработчику. По крайней мере мне так кажется когда работаю с их продуктами (PhpStorm/WebStorm + DataGrip).
    - Python/Django: супер универсальный язык который популярен как для разработки веб-приложений так и в научной сфере и сфере искусственного интеллекта. Говорят его так же легко выучить как и PHP. От сюда же наверное и шитстормы в его сторону, хотя конечно их меньше чем в сторону PHP. Язык так же популярен среди хакеров и является главным языком для программирования crawler ботов. YouTube написан на Python
    - Ruby (on Rails): ничего не знаю об этом языке/фрэймворке кроме того что относительно много компаний среднего уровня его используют.
    - C/C++: веб-фреймворков для этих языков практически нет. Но это самые быстрые языки из всех перечисленных. Эти языки используются для всего где скорость играет большую роль (видео обработка например). JavaScript, все программы от Adobe CC, а также Ableton Live написаны на C++. Linux Kernel и PHP написаны на C. Также это главные языки для электроприборов/микроконтроллеров и поэтому в сфере IoT. Возможно эти языки начнут также играть большую роль во фронтенд!!! благодаря WebAssembly, что делает (теоретически) возможным переносить такие программы как Photoshop, Illustrator, Premiere Pro, After Effects, Ableton Live или же игры как Counter Strike полностью в броузер. 
Если бы я начинал учить новый бэкенд язык я бы начал с C/C++.
    Ответ написан
    Комментировать
  • Как быть в такой ситуации?

    verkhoturov
    @verkhoturov
    Frontend Developer
    1) Выбирайте популярный стэк (например, анализируя вакансии) вместо перечисленных вариантов.
    Вот это явно какая-то экзотика:
    C# + Excel
    JS + НTML + Google Apps Script

    2) Выбрав стэк придумайте как на нем сделать что-то полезное на работе
    3) Убедите начальника выделить вам время на проект
    4) Теперь есть официальный повод чтобы вам разблокировали нужные ресурсы
    5) Спокойно пилите проект параллельно изучая нужный стэк
    6) Допилив проект и введя его в эксплуатацию, вы получили коммерческий опыт, можно искать новую работу :)

    Можно сделать проще, если на работу можно приносить личный ноутбук и нормально работает мобильная сеть. Вопрос с доступами отпадет. Для незнающих людей будет выглядеть одинаково, работаете вы или учитесь за ноутом.
    Ответ написан
    1 комментарий
  • Каков русский Open Sourse?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Kotlin, IntelliJ IDEA, ClickHouse, Sphinx и ещё куча всего.
    Ответ написан
    2 комментария
  • Куда двигаться дальше senior разработчику? Новый язык, технологии, opensource, стартап?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Как вы это делаете?! За 17 лет работы в ИТ у меня ни разу не возникало вопроса "Куда двигаться?", только "Где взять времени на освоение всего этого бесконечного изобилия технологий, углублённого изучения уже знакомого и реализацию множества идей?"
    Ответ написан
    4 комментария
  • Куда двигаться дальше senior разработчику? Новый язык, технологии, opensource, стартап?

    @L17217
    Сеньором вы будете как раз тогда когда будете знать куда следует двигаться.

    26 летних сеньоров не существует. Это фантастика

    Вы только поняли что дело не в языках и не во фреймворках? Поздравляю вы только что перестали быть ДЖУНОМ
    Ответ написан
    2 комментария
  • Как найти работу или opensource проект начинающему разрабу?

    @Eik
    1.5 года назад столкнулся с той же проблемой. + возраст (38). Задавал примерно теже вопросы только обходил РФ форумы т.к. 82p.jpg Специально зарегистрировался чтоб ответить.
    Да люди правы на гитхабе есть тонны интересных проектов. Даже есть пара сайтов где отмечены "нид хелп" проекты. Адреса не помню можно погуглить. Проблема контрибутить там та же.. получить фидбек по твоему (моему) пул реквесту с джуноговнокодом должно прям очень повести. И это конечно капец как демотивиоует в начале. + без денег.
    Для себя нашел спасение во фриланс площадках апворк и фивер. Начал с мелких скриптов по 50-100 долларов. Постоянно продолжая развиваться и самоучить лучшие практики. Сейчас работаю фуллтайм платят через апворк уже больше полугода. Гитхаб и гитлаб весь зеленый, да многие проекты не опенсорс для себя решил это давая временный доступ к РЕПО если кто-то просит (кроме тех что под nda).
    Мне кажется для маленького города это вполне ок.
    Да есть минусы.
    - Нужна самодисциплина
    - нужен хоть какой-то английский (но тыж в айти это и так нужно кроме 1сников))
    - если не будешь выделять половину времени и заработанных денег на самообразование так и будешь писать плохой код (хотя многие индусы так и живут)
    - ответственность - зато быстрее качаются скилы под стрессом.
    - отсутствие стабильности, пенсии
    - последний месяц работаю по ночам из-за разницы во времени
    после года можно и на миддла стучаться, но если ты более менее развился вряд-ли тебя устроит соотношение зарплаты-требования на хх.ру

    И скорее всего сейчас начнут писать что надо там биться с индусами за копеечные проекты. Тут согласен. Я начал с 12долл/час (как домработница из Мексики) когда в месяц наскребал 50-60к рублей был все равно рад, т.к. в моем городе на том уровне какой был у меня вообще не брали)) умниц только что из универа за 25к брали. Прошел год, недавно отмечал переход порога 200. Я понимаю что я все ещё нищеброд и индус но до сих пор уверен что на моем уровне и в моем возрасте в РФ разработчикам столько не платят. Но возможно я ошибаюсь.
    В общем удачи тебе, если будешь стараться наверняка куда-то устроишься.

    Слышал ещё в наши топкомпании Яндекс сбер ... стучаться ок после обучения прям у них. Было бы здорово прочитать про чей-то реальный опыт.

    Все написанное выше не призыв к действию. Просто описал опыт, возможно ошибка выжившего и скорее всего не правда и бред сумасшедшего. Все обдумай. И удачи.
    Картинка с вастрик.ру
    Ответ написан
    2 комментария
  • Как работать с этими стилями в gtk?

    @xverizex Автор вопроса
    Всё я решил проблему. Вот как надо было.
    const char *style = "* { background-color: #3c3c3c; } entry { color: #ffffff; } frame#frame_text * { background-color: #1c1c1c; border-radius: 6px; } textview text { color: #ffffff; } textview#text_view_w * { border-radius: 0px; }";
    
    static gboolean entry_input_text_cb ( GtkWidget *widget, GdkEvent *event, gpointer data ) {
            GdkEventKey *key = ( GdkEventKey * ) event;
            if ( key->keyval == GDK_KEY_Return ) {
                    const char *t = gtk_entry_get_text ( ( GtkEntry * ) entry_input_text );
                    if ( strlen ( t ) == 0 ) return FALSE;
    
                    GtkTextBuffer *buf = gtk_text_buffer_new ( NULL );
                    gtk_text_buffer_set_text ( buf, t, strlen ( t ) );
                    printf ( "t: %s\n", t );
    
                    GtkWidget *frame = g_object_new ( GTK_TYPE_FRAME, "shadow-type", GTK_SHADOW_NONE, "name", "frame_text", NULL );
    
                    GtkWidget *text_view = gtk_text_view_new_with_buffer ( buf );
                    gtk_widget_set_name ( text_view, "text_view_w" );
                    gtk_widget_set_margin_start ( frame, 10 );
                    gtk_widget_set_margin_end ( frame, 10 );
                    gtk_widget_set_margin_top ( frame, 10 );
    
                    gtk_widget_set_margin_top ( text_view, 10 );
                    gtk_widget_set_margin_bottom ( text_view, 10 );
                    gtk_widget_set_margin_start ( text_view, 10 );
                    gtk_widget_set_margin_end ( text_view, 10 );
    
                    g_signal_connect ( text_view, "draw", G_CALLBACK ( text_view_draw_cb ), NULL );
                    gtk_container_add ( ( GtkContainer * ) frame, text_view );
                    gtk_box_pack_start ( ( GtkBox * ) text_box, frame, FALSE, FALSE, 0 );
                    gtk_widget_show_all ( text_box );
    
            }
    
            return FALSE;
    }
    Ответ написан
    Комментировать
  • JS последовательность изучения, что учить после основы в 2021 году?

    Сейчас почти весь фронт это React, минус часть работает с Ангуляром или Vue, и часть с динозаврами и другими менее популярными решениями.

    Минимально нужно:
    1. HTML
    2. CSS
    3. JavaScript
    4. Сборка (Webpack в 99% случаев)
    5. React (вся экосистема, включая Redux, Saga, Router, и прочее)
    6. Тестирование приложений на фронте (Jest, Karma, Selenium, Puppeteer, Cucumber, Gherkin минимум)


    Это самый минимум, но на самом деле надо намного больше:
    1. Знание архитектур ПО, видов, плюсов, минусов
    2. Знание принципов проектирования (шаблоны, SOLID, и другие слова)
    3. Изучение приемов кодирования
    4. Изучение работы сетевых протоколов (особенно HTTP/S)


    Дальше остается миллион и маленькая тележка того, что нужно знать ЕЩЕ, и здесь уже нереально всё перечислить, например:
    • Процессы отрисовки веб-страницы
    • Продвинутая работа с анимацией
    • Виды программирования, их плюсы и минусы, как они работают
    • Изучение инструментов
    • Изучение приемов балансировки нагрузки (в том числе на фронте)


    ...и потом еще Agile (чистый, потом Scrum, Kanban), а потом управление командами, принципы коммуницирования, принципы планирования работы, понимание процессов производства софта, и прочее и прочее..

    Поэтому рекомендую минимум по React выучить, и найти работу, и по возможности начать делать пет-проекты.

    Берете задачу посложнее, и делаете на нормальном стеке. В процессе соберете миллион грабель, научитесь тому минимуму, что необходимо, и так прокачаетесь.

    Пет-проекты нужно делать всегда, даже если есть работа, потому что работа это устоявшиеся принципы и инструменты, а пет-проекты дают возможность изучения и использования других инструментов, подходов, поэтому это отличный способ улучшить свои навыки.
    Ответ написан
    1 комментарий
  • Java или C++ для сложных задач, проектов и computer science?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    C++ сегодня очень сложен как язык. Порог вхождения высок и новички часто обламывают об него зубы доходя лишь до арифметики указателей. Там - половина ньюкамеров можно выносить ногами вперед. Скорость разработки прикладного ПО под backend на Java значительно выше. Да и облачные технологии такие как Google Clound , Amazon AWS поддерживают все языки кроме С++. Вобщем если автор хочет быстрых денег - то лучше Java.
    В С++ надо вырасти до седых волос чтобы представлять что-то серъезное потому-что стек С++ плотно уходит в операционную систему и железо. Невозможно знать просто С++. Надо быть немного сисадмином и железячником. Иначе в С++ делать нечего.
    Ответ написан
    Комментировать
  • Где можно искать партнёров программистов?

    Oposum
    @Oposum
    Как Вы представляете себе ресурс, где программисты, регистрируются с одним желанием - работать, и делать чужие проекты, за возможность получить когда-то "прибыль"? То, есть по схеме - ты работай сейчас, делай мое, а прибыль получим послезавтра?
    Для того, что бы, кто-то согласился - нужно иметь хотя-бы имя. Например - на Илона Маска, большинство согласятся писать на за будущий профит, который регулируется соглашением, а вот за Васю Пупкина из Верхних Кочек - не все согласятся даже за зарплату.
    И настораживает, что есть не Проект - а "проекты", то есть определенности вообще нет, есть желание...
    Ответ написан
    Комментировать
  • Как привлечь разработчика-кофаундера, в перспективный стартап?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Та же проблема. Только с другой стороны.

    Я программист. Есть три программы. Но дизайн у них не очень. Также нужно хорошие сайты к ним.
    Обучающие ролики. Но приложения плохо монетизируются.

    Не хотите бесплатно помочь мне ? А в будущем, когда мой двухлетний труд окупиться по ставке
    сеньора программиста Вам буду отдавать 20 процентов от сумм свыше 5 тысяч долларов в месяц.
    А если случиться чудо (больше 10к$), то под каким нибудь предлогом перестану платить совсем.

    Дико ?

    Опытный программист знает, что шанс выйти на самоокупаемость у мобильного приложения 3-5% через 2-3 года.
    А то, что потом какие-то проценты начнуть капать пожизненно вообще равно нулю. Рассорились. Перестал работать дальше над проектом. Фиг тебе золотая рыбка.
    Ответ написан
    Комментировать
  • Java vs C++. Что полезнее?

    @ProkletyiPirat
    смотря что считать "распространенными задачами" ...

    первое что нужно понимать что для каждой задачи свой инструмент, и особенно нужно помнить что инструмент можно применять не по назначению.
    скажем отвёрткой можно забивать гвозди, ей даже можно пользоваться как стамеской или долото, но она для этого не предназначена и используя нормальный инструмент вы будете куда производительнее.

    так например на Java в сравнении с C++ проще и быстрее писать кросс платформенные приложения или много поточные приложения и при этом они будут работать быстрее C++, но зато когда дело касается железок или объёмной работы над памятью то на С++ писать быстрее и проще и работать будет быстрее чем Java.

    а весь цимес в том что не надо говорить "Java" или "C++", надо говорить "Java" и "C++", за счёт того что есть JNI вы спокойно можете вынести все нагруженные вычисления в С\С++, а в Java оставить всё остальное, и получить лучшее из двух миров.
    Ответ написан
    Комментировать
  • Хочу писать на java приложения для Android, с чего начать?

    GTRxShock
    @GTRxShock
    SA
    Русский быстрый старт по основам вы найдете в курсе Start Android
    startandroid.ru/ru/uroki.html
    https://www.youtube.com/playlist?list=PLyfVjOYzuju...

    Следом, довольно интересный материал есть у ребят из Devcolibri
    https://www.youtube.com/playlist?list=PLIU76b8Cjem...

    А если с английским не проблема, пройдите курс старого доброго Адама Портера :)
    https://www.coursera.org/learn/android-programming (там 2 части)
    Ответ написан
    Комментировать
  • Есть ли "roadmap" для разработчика android приложений?

    @Simipa
    React Native developer
    startandroid.ru/ru

    Начинай с этих уроков. Большая часть еще актуальна.
    Ответ написан
    Комментировать
  • Есть ли "roadmap" для разработчика android приложений?

    @Stancialeta
    Привет!
    Я бы рекомендовал изучить темы:

    Java
    --------
    * Object: hashCode, equals, wait, notify
    * Collections: List, Set, Queue, Map
    * References: Strong, Soft, Weak, Phantom
    * Concurrency: Thread, Runnable, Executor, Future, Synchronized, Volatile, Synchronized collections.
    * io: InputStream, OutputStream, File, serialization
    * Network: URL, urlconnection, etc
    * json, xml
    * generics
    * reflection
    * class loader
    * enum

    Android
    --------
    * Android tasks and backstack (LaunchMode(singleTask, singleTop, etc), Task Affinity)
    * Activity: Lifecycle, What, start, start with result
    * Services: IBinder, Message Handler
    * ContentProvider: how to use and why
    * Broadcast Receiver: how to use and why
    * Intent & Intent Filters: common and in manifest.xml
    * Fragments: Lifecycle, Why, FragmentManager, NestedFragmentManager
    * Notifications: how to use
    * Permissions: what and how
    * Resources: what and how
    * Styles: how to use and why
    * InputEvents
    * MaterialDesign: RecyclerView, CardView, FloatingActionButton
    * Layouts (also CoordinatorLayout)
    * Toolbar
    * Pager
    * Settings
    * Menu
    * Dialogs
    * Toasts, Snackbar
    * Animation, Shadows
    * Support lib, Support design
    * Network: frameworks (OkHttp, Retrofit)
    * Process: separated processes
    * Application: using
    * Concurrency: AsyncTask, best practices for long time work.
    * Bitmaps: using, reusing
    * VectorDrawable
    * Deep Linking

    Common:
    --------
    * Patterns
    * Caching
    * di

    Misc:
    -------
    Git
    Gradle
    Ответ написан
    1 комментарий
  • Gtk, TextView и строки. Как вывести?

    delvin-fil
    @delvin-fil Автор вопроса
    Crazy Linux-admin
    Решено!
    outtext = ts.google(intext,
                        to_language=langout,
                        is_detail_result=True,
                        if_use_cn_host=True)

    убрал is_detail_result=True
    outtext = ts.google(intext,
                        to_language=langout,
                        if_use_cn_host=True)

    и все заработало как задумано.
    5f28b7c319e29631470959.png
    Ответ написан
    Комментировать